If your form's main data source is bound to a Web service or SQL database, it is a tightly coupled solution which will cause the data migration issue you discovered.
Best practice is to create a loosely coupled service-oriented architecture (SOA) using Web Services as your bridges. InfoPath is your data collection doorstep to your users. Use Web services to move the data into a database or line-of-business process.
If you are having trouble writing a Web service, look at the free trial one we provide (DBXL) - it's guaranteed to cost you less time and money and return more value over the months or we refund your money. :)
With loosely coupled Web services the InfoPath template can change without causing a major issue for your downstream database and vice versa. You just update the mapping on the fly and re-map the pre-existing files. Previous XML files can have a different schema and that's ok.
InfoPath versioning is a topic I present on during our weekly webinars. Next slot will be in July. With InfoPath versioning, you can control how the old forms open. You can open them in the old template (via content types, etc.), automatically upgade them to the new, or present the user with an option to see the old data in the old template, but click a convert button to edit in the new form. Of course, you can batch migrate the old XMLs to the new format too if you want to force all users to use the new form template.
Hopefully this was a little bit helpful. If not, please reach out, and I'd be happy to talk about these concepts with you further. We're here to help you make the right longterm decisions for your business process. Right means low cost, easy to maintain, scalable, fast and efficient.