If you haven't experienced it already, when you have an InfoPath form live on your server, and you make a change to the schema of the form and upload it over the existing copy, your old forms won't open. There is a work around we have applied with our customer which works well for us and I'll continue to explain it here.
 
If you are stuck right now, and you already uploaded a new form and lost access to your old forms: find the previous version. Whether from backup or source safe, roll back to when it did work and move that form live. Then follow these steps.
 
Test it out.
In my scenario, I have a test server and a production server. All changes are uploaded over the current forms on the test server to determine if we need to version our forms on the production server. If my memory serves me correctly, ANY changes to the schema will require a versioned copy so the old copy can still be accessed. If you change the style of the form (layout changes, colors, images) this should be fine for a direct upgrade. But test it out. If a test box isn't available, then check out Keeping Your Versions below.
 
Version it.
Unfortunately there is no easy way to version content types other than manually updating the files yourself. For example, we have a form RequestforInformation.xsn.
 
a) We made a schema change so now I publish the form as RequestForInformation_v1.1.xsn. We now upload this into the Form Templates on the server and activate it to our collection.
b) Go to the settings of the form library and add the new content type. You will now have two content types listed.
c) Rename the old content type to it's version, in my example I renamed it to RequestForInformation_v1.0.
d) Rename the new content type by removing the version reference: RequestForInformation.
e) Click "Change new button order and default content type" below the content types list and uncheck Visible for the old content type.
Now in the form library when you click New you will use the new form. When you view an existing record it'll still open in the old form!
 
Keeping your versions.
What happens if you accidently upgraded a form with a new schema change and thus blowing up your existing forms? Like I said in the beginning, you'll need to find a backup somewhere and restore it. Moving forward from here, use SharePoint's resident versioning controls to store all of your published InfoPath forms and finding your backup is a breeze.
 
a) Create a new library somewhere in your SharePoint site and enable versioning.
b) On the computer you are performing your InfoPath development, browse to this library and open it in Windows Explorer. If you are developing on a Windows 2008 server, check out http://insomniacgeek.com/blog/sharepoint-open-with-windows-explorer-on-windows-server-2008/ to enable access to SharePoint's Explorer integration.
c) With it open, map a network drive to the opened folder. I used i: for InfoPath Forms
d) When you publish a form, publish it to your new drive.
e) When you go to upload the form to the server in Central Admin, browse to the new drive and use that copy.
 
So simple isn't it... Now, when you create v1.1 and so on for a form, all of the previous versions will be saved in SharePoint. If you make a schema change and forget to create a manual version, SharePoint versioning will be there to save the day!
 
Hope this helps!!