Windows 7, at least in the OEM version, does not support upgrading from XP. You have to do a clean installation, especially when you change the OS architecture from 32-Bit to 64-Bit. And it is STRONGLY recommended to upgrade to 64-Bit Windows 7 when your system has a 64-Bit CPU.
But even if there was an option to upgrade from any version to another, I wouldn't use it -- not on Windows, not on (Ubuntu) Linux, not even on OS X. In my experience, upgrade installations of -any- operating system never run as smooth as fresh installations because you always have some dead weight and out-dated system files or drivers somewhere that cause problems.
So the simple rule is to NEVER upgrade but ALWAYS install from scratch, even if it takes more time.
And yes, to say it again, OS X is no exception to that rule. Upgrading from Tiger to Leopard resulted in an unpredictable and unstable mess on -all- machines that I upgraded. And the upgrade from Leopard to Snow Leopard wasn't much better. The Snow Leopard to Lion upgrade worked the best, but there were still differences in the behavior to a clean Lion installation. So in the end, I always made fresh installations because it's the only way to obtain proper results.
Okay, just to say it, the situation with (Ubuntu) Linux isn't as bad as it is with OS X or Windows. The upgrades from Ubuntu Server 8.04 LTS to 10.04 LTS that I made went quite well and were acceptable, actually. But still, you carry configuration files for out-dated software versions around and those mixed versions just don't feel right. Whenever I can squeeze it in, I make fresh installations of those previously upgraded systems.
I know that a lot of people here will disagree with what I said because the one upgrade that they ever tried went okay for them. But before you trust the majority of those posters, you should ask them how many of them actually make their living in professional IT, work in server rooms or maintain global networks and have more than 20 years of experience in the business. I'm just saying that I do not only support my home computer, but real company networks spread across continents, so I get to "play" with a lot of computers and platforms every single day. And when I learned something about Windows and OS X upgrades in those years, then it is that they still suck and are not dependable.
VMWare: If you are really using only two Windows programs, and if those two programs are not games, then in my opinion it is not justifiable to use Boot Camp! Install Windows in a VM and let those two apps run side by side with your OS X software. It's more efficient and convenient that way. Boot Camp is a crutch for those who want to run power hungry Windows apps like games or certain CAD applications.
Everybody else who still needs a Windows-only app should either stay on Windows as his/her sole operating system (because if you need software for a different operating system, then clearly you made a poor choice with your current platform) or if you only need that software on rare occasions, a virtual machine is a very comfortable way to use it.
But I still think that if one cannot live without Windows because the OS is needed to get the work done, then switching to a Mac or a Linux machine is a completely moronic choice. Either the new platform can PROPERLY take over ALL the required tasks or it is a failure. It's that simple.