Microsoft Virtual PC 2007
This is an excellent (and free) program for those of us who need to use one operating system, but also access another without needing to reboot. In my case I'm running Vista Business as the system OS on my desktop, but have Windows XP, Windows 98SE and Ubuntu Linux available when I need them.
Why?
Because I need to be able to check stuff on previous Windows versions when people ask me questions about other operating systems.
It means that I can dispose of a couple of PCs cluttering up my limited space.
I can run programs in virtual Windows XP which won't run under Vista - Britannica 2007 for instance. Some older games can't run on Vista or even XP. No problem in your virtual machine.
I need to access old versions of Internet Explore for web page testing - no problem: I run Office 2007 and Internet Explorer 7 on Windows Vista; Office 2003 and Internet Explorer 6 on Windows XP; and Internet Explorer 5 on Windows 98.
Should I wish I can also have a second installation of Vista for trying out programs I'm suspicious of. Because I use imaging software this is not an issue for me.
This is what you see when you start VPC:
As you can see, here I have installed Ubuntu Linux, Windows XP and Windows 98SE. I double click on any one and the operating system opens in a new window:

Here I've double clicked on the Windows XP icon and a new window opens, Windows XP boots inside that Window.
Voila!
Logging on

The full Vista screen with an XP virtual machine in a window
Note that the window may be made full screen if required, but as my
monitor is 1920 x 1200 res, I'm satisfied
to keep it at the default size.
Here XP is running at 1024 x 768 pixel screen definition.

What do I need?
To run Microsoft Virtual Machine 2007 the host operating system must be Windows Vista Business, Vista Ultimate or XP Professional. If you have a Home version of Windows you can install Microsoft Virtual Machine 2004.
Memory
It helps to have plenty. The virtual machines, when running, take their RAM and graphics memory from an amount which you allot from your system RAM.
I allot 512MB each to Windows XP and Ubuntu 6.06 and 125MB to Windows 98SE. This is enough to allow me to run these operating systems easily at a relatively high resolution (1280 x 800).
You can get away with less, but you may need to limit your virtual screen size to, say, 800 x 600 px and you won't be able to run too many programs at once. Not that you're likely to need to from within a virtual machine.