Can you upgrade from Windows XP to Windows 7 *without* losing all your programs, settings, etc? Answer to that is “yes, with a but”.
It’s easy enough in principle, you just have to upgrade from Windows XP to Windows Vista, and then you go from Windows Vista to Windows 7. I hope you have (a) a known good full backup, and (b) 48-96 hours to spare, cause neither of those upgrades is likely to be terribly quick on a machine that’s been in use for a good few years.
“Why do you pose the question?”, you might be asking? Well, at work we still have a few machines running XP, and I’m OK with that. Microsoft have shown that even though they don’t support it any more, they are still patching any giant holes (IE anyone?). The only problem is that one of those XP machines is a laptop used by a remote developer, and latest OpenVPN is exhibiting some weird inconsistencies with XP (sometimes won’t connect to Windows network shares, definitely won’t connect to Exchange server, and refuses to post info back to one of our internal web services). I’m in conversation with both OpenVPN and pfSense about it, but I’m thinking the quickest fix might well be to upgrade the laptop in question.
Which brings us to the second option that Microsoft offer us: clean install Windows 7 and reinstall programs, settings, etc. It can be a metric tonne quicker (hour to do a fresh Windows 7 install, and maybe a few hours to reinstall all the truly important programs that the machine in question has), and it will reset any “winrot” that the machine has. Plus, no need to get a copy of Vista (not everyone has access to MSDN).
The decision isn’t mine in this case, but if it were, I know which option I would choose (hint: the quicker one).