This would not be possible under XP. However, starting with Windows Vista, Microsoft introduced a new installer mechanism that essentially takes a generic image of the operating system and copies that to a new hard drive. When booted, the operating system then configures itself to match whatever hardware it finds.
This new installer method means what you propose has a much higher likelihood of success. However, you still shouldn't expect it to just work, for several reasons:
- Certain things are still done on first boot, and so not everything will be set up properly.
- The newly installed drive may not match everything needed by the bootloader
- You may still need to find and install drivers for your new hardware.
- Some software installations are hardware dependent. An example would be video games that install modules for both nvidia and ati graphics cards and set a configuration entry at install time telling them which module to load. There are other examples of this as well.
- The new hardware will break your activation
In other words, you're not really saving much time. You should still expect to do just as much work after the new hardware arrives as you would if you were to install from scratch.
On the other hand, if you've got the time to kill it won't hurt anything to try, and you must just get lucky enough to have everything work out.