Installing Windows: frequently asked questions
and note their answer to the question "Should I upgrade or perform a custom installation?". However, if Microsoft does actively advocate a custom installation over an upgrade, I would be grateful to see a link to that advice from them.
Whatever you do, read that FAQ.
Nevertheless, I have found that a clean installation is less frustrating than an upgrade if the upgrade fails, although a "clean" installation will require more time to perform since you have to reinstall your applications. But I have had some upgrades turn out fine -- and they finished almost before the coffee was ready. Give it a shot. If it doesn't work then you can always do it clean.
But do a full backup in case you need to go back to your old OS, and use Windows Easy Transfer to save your files and settings in case you are forced to do a clean installation. Do both before using either method, just in case.
Note that you can use Windows Easy Transfer (WET) to create an archive file containing all of your personal files and settings from your old operating system. You can then import this file into Windows 7. You can download WET for Windows XP at:
Download details: Windows Easy Transfer for Windows XP
and for Windows Vista at
Download details: Windows Easy Transfer for transferring from Windows Vista (32 bit) to Windows 7
Download details: Windows Easy Transfer for transferring from Windows Vista (64 bit) to Windows 7
Installing Windows: recommended links
and click the link to "Installing and reinstalling Windows 7". You can find links to Microsoft's recommended procedure for either scenario under that link, too. Those pages can help you decide which scenario is best for you, and they provide very good instructions.
One other thing: there is no email client built into Windows 7. If you use Windows Mail or Outlook Express and want to import your mail or contacts, you're pretty much screwed. Windows Live Email might be able to do it, but I don't use it so I'm not sure.
Before you leave your old operating system, make sure you export your mail to a .pst file (used by Exchange and Outlook) and your contacts to a .csv file (a more or less universal structure). Maybe you'll be able to import those back into whatever email client you end up using, e.g., Microssoft Outlook or Mozilla Thunderbird, if any.