There is no hard limit to the amount of hardware you can change - it all depends on OS and drivers and the hardware versions.
OEM Windows might throw a tantrum and refuse Windows activation if it sees too many hardware changes, but there is no technical reason for this, it's just a licencing watchdog.
In general you could swap even the hard drive; just use Linux Live CD and program called "dd" to take 1:1 copy of the disk to new one.
I regularly swap hard drives, motherboards, memory, graphics cards, processors etc by just shutting down the system, swapping, and booting again.
As long as the architecture of the new processor matches the one used by OS, you're good to go. Ie. swapping in 32-bit CPU when OS is 64-bit would cause problems, but that's it.
In practice, the OS needs to have necessary drivers for the hardware for them to work; the most essential are the drives and the network interface card (NIC). If those are met, then the OS just boots, and tries to find drivers for the rest. On Linux the drivers often are already there, they are just loaded on boot, on Windows it depends; if the NIC works, Windows goes looking for the drivers first on the disk and then from the Windows Update site.
After that's done, and a reboot, you can then load the remaining drivers yourself from the websites of the manufacturers of each piece of hardware.
In rare cases some old driver/utility program causes problems because it insists on running while the associated hardware is not present. Keep eye on Event Log for those, and if you see such issues, remove/reinstall the said utility.
I changed practically everything once and Windows 7 kept running. – sinni800 – 2011-08-23T11:56:40.640