Several Windows Installer limitations make it important to test your upgrade scenarios before you release your product.
For example, if you are planning to upgrade your product using a major upgrade, create a test build with new versions of all of the binaries. Then test by upgrading your current product with the test build and downgrade the test build with your current product. Verify that the appropriate files are present and absent after the upgrade. In a major upgrae pay particular attention to unversioned data files and user data.
With a product of any complexity it is very likely you will find at least one issue to address in your current product. Fixing those issues before your product releases, will make upgrading easier (and sometimes possible) in the future.