As I mentioned before, I had some issues with our smart clients developed under the 1.1 framework after installing 2.0 on machines. I was also running into the same issue almost randomly on some machines that did not have 2.0 installed. They would work for a few days, then for a few days trigger the file download dialog. Never really figured out the reason.
Our solution was to convert our smart clients to 2.0 framework. While at first I was nervous about taking that step, what a blessing it has been and it was very simple to do. The wizard converted everything over with very few problems. Only had a few things that I had to change due to being made obsolete in the new framework. Other than that all worked fine, for the most part.
The biggest issue I ran into was where I was doing some asynchronous FTP transfer and updating a progress bar. You can probably guess the problem I ran into. Cross thread issues updating the UI. Took care of those problems with a few Invoke and all was well (nope didn't take time to use BackgroundWorker). I should have caught those in the old version, but never ran into troubles and 1.1 let you get away with it without warnings.
The other added benefit is the ClickOnce technology that gives progress bars at every step when launching the app. I had issues with the 1.1 smart clients when people would be impatient with the loading of the client (mostly after I had updated the program and they were downloading new components). Now while the load time is not much different, it at least gives the appearance of faster loading and the user at least knows what is going on. Very nice.