Try this: When you publish the form using the Publish wizard, you select the output folder and filename - leave this as normal to overwrite your template with an updated version.
But then, in the box below which contains 'Form name' it defaults to the form's name initially given, or the filename of the template without the xsn bit.
Change this to something else, like blahForm v1, blahForm v2 etc etc, changing the version number value each time.
Then when uses open a form, it will still upgrade from the new template file, but the form name changes and so the old cache is no longer valid and it creates a new cache for the new form name.
This seems to work for me with no bad side effects - the form updates fine, and the user never gets asked with that confusing 'use old form new form on my computer blah blah' - it's an aweful option message - and very confusing.
Hope this works for you too.