We use wix to create setups for our application. For the case where the user has already installed an older version of our application, we do a major upgrade with the MajorU
Sadly, the Windows Installer doesn't support that. Some process outside your package (a bootstrapper/chainer?) will have to manage the upgrade from per-user to per-machine.