The worst experience I have had was when I was building 30 identical PC's from the same batch, I built the first one with windows XP and then cloned it to the remaining 29. Alhough the hardware was identical in every respect none of the rest of the machine would work, I think it was due to the memory addresses being slightly different on each machine which caused it to crash.
However I have removed a windows XP drive from two completely different machines with different chipsets and because they were so different windows XP had to re-detect everything and worked ok.
Windows 2000 used to be even better at it then windows XP, windows XP sometimes flakes out, at which point if you re-install the OS back over the top of itself it rebuilds the hardware portion of the registry, changes a couple of settings in the software part back to defaults but leaves everything else intact.
Of course none of this works if you are using SATA or raid as its effectively a complete start from scratch as it normally fails.