Some people are still really leery about migrating drives from one system to another, but in my experience you can even swap from AMD to Intel, and vice-versa, on XP if you're careful. I generally don't do that on my personal rigs since I see a new build as an opportunity to clean things up (plus, I do most of my serious work in Linux anyway nowadays, and I'm more than capable of migrating that without reinstalling), but my dad's consistently carried his Windows install across for three systems—including jumping from AMD to Intel when I gave him my old rig—and went through multiple Windows upgrades and he hasn't run into any issues.
Even if you do run into issues, it's not like you're going to lose your data unless you explicitly reformat the drive. Even if you install Windows over itself (Vista and up—XP and under handled this differently) it's good about making a Windows.old directory and dumping all of the stuff that would have otherwise been replaced in there.
To go into a bit more of the nitty gritty, there's a few layers to the way that Windows handles hardware. The first is the HAL—hardware abstraction layer. This is a platform-specific piece of code that determines what kind of PC you're running Windows on. In pre-Vista versions of Windows this is determined by the installer and the system would fail to boot if the incorrect one was installed. Generally speaking, most XP systems either used ACPI multiprocessor PC or ACPI uniprocessor PC, and this is the main reason why XP might refuse to boot if you switched from a single-core/single-CPU build to a multi-core build. When a lot of people refer to having issues during upgrades, this is actually what they're referring to. Swapping hal.dll with the correct one will allow the system to boot.
Since Vista, however, all applicable HALs are now installed and the correct one will be chosen on boot.
As far as drivers are concerned, barring non-plug-and-play drivers—exceedingly rare nowadays outside of things like drive emulators—Windows will only load what it needs. It's been like this to some extent since as far back as Windows 95. If drivers were baked into the system, even swapping a sound card would be a bigger deal than it is. Generally speaking, the only thing that gets impacted when you swap anything out are pieces of software designed to control very specific hardware. Everything else generally falls in line after a bunch of reinstalling and a reboot or two.
Preemptive response! If you ever wonder why Windows has to reinstall drivers for things that you move over from your old system (like your GPU, if you're going that route) it's because the hardware ID for your bus doesn't match the old one. Every device on the bus has its own unique identifier, with the vendor number and product ID baked into it. For example, a GeForce 1080 Ti's ID is 10DE:1B06, with 10DE representing NVIDIA and 1B06 being the unique product ID.
Expansion cards aren't the only part to have a product ID. PCI Express buses also have their own product IDs. Let's say you were upgrading an Intel Z270 board to a X390 board. The PCIe bus for the X270 might have an ID of 8086:A290. When you take the GPU and plug it into the Z390 board, the ID is likely going to be 8086:9DB2. Since the root port's ID changed, Windows is going to have to enumerate the new bus and reinstall the drivers for all of the hardware on it.
Something similar happens if you move a card from one slot to another. Even though the IDs are the same, the path of the device changes, so it's treated as a new device.
She's a big ol lesbo and she's excited about her rainbow fan more than anything else lol. That and Stardew Valley.
Who wouldn't be excited over an RGB fan?
