@Tzael
The embedded C compiler I used in my first job had a parallel port dongle. Worked OK on the mid 90's spec PCs that we originally had in the office, but following a long overdue round of hardware upgrades in the early 00's it took several hours of faffing around with dongle driver settings, BIOS settings etc. before the damn thing would be recognised again. Also meant that we had to keep specifying new PCs with parallel ports, or hope that the existing PCs we had kept on working... Later versions of the compiler switched to USB dongles, but the cost of buying the new version and the time spent checking it for project compatibility with the older version (we already knew it could be a pain in the arse just switching between minor revisions of the same compiler, let alone going to a complete new major version) meant this wasn't much of an alternative.
Changing companies, I then found myself using said USB-dongleised version of the compiler. Which, as it turned out, was only slightly less of a pain in the arse. Plug it into a different USB port than the one it'd been when you ran the licencing utility, and watch in amazement as the compiler complained about being unlicenced. Have to use a different dongle to the one you'd originally authorised (we had 3 shared between 10 engineers) and you had to go through the whole authorisation process again - and if you forgot to save your original licencing data files first, you then had to reauthorise once again when you went back to using your original dongle.
Granted, dongle swapping was also a problem with the parallel port version, but with two notable differences:
1. the parallel port dongles had a nice big flat paper label on them that clearly showed their unique ID number, whereas the USB dongles had a rather small reference number (which wasn't the same as the actual ID number used by the licencing software) printed semi-legibly directly onto the curved casing... anyone got a magnifying glass handy?
2. using a different parallel port dongle simply meant editing one text file to change the dongle ID number, no need to save backup copies of binary licencing files or reauthorise.
Meanwhile at home, following completion of a new PC build, I tried to install the full version of HollywoodFX I'd bought a couple of years previously. Not unsurprisingly, given the complete change in hardware, the activation code from the previous installation didn't work. Tried doing a fresh activation using the web-based licence tool provided, got repeated errors about pages not being available. Tried logging into my HollywoodFX user account to get a code there, only to discover that the version of HFX I had was no longer listed on the page for requesting new codes.
Had the same problem with Delphi 7 - can't use the activation code from my old PC because the hardware ID is different, and can't get a new code because the official activation process never returns with the required data.
In both cases, I ended up resolving the problems by obtaining cracks. Which is a pretty crappy way to get a 100% legit software installation working the way it should - how many PC users, when faced with a similar re-activation problem, wouldn't consider looking for, or wouldn't risk using, a crack, and would end up buying a newer version of the software just so they can continue using it?
As far as the specific perils of WGA go, I've had my XP Pro setup (again, fully legit) claiming to be dodgy and in need of immediate reactivation when all I did was switch it on after being powered down overnight, and no, it hadn't installed any updates as part of the shutdown process the previous day - nothing about the hardware or software setup on that PC had changed from one day to the next, yet WGA thought otherwise. Granted, all it took to fix it this time was an online reactivation, but will the same be true the next time? And what if this had happened if I'd been without a net connection or near a phone line (say, if I'd just boarded a long-haul flight and switched on my laptop to do a few hours work?).
So add to your list a third category:
3) Have willingly paid for a piece of software, only to then see it rendered potentially useless due to a protection scheme which is no longer supported by current hardware or the software manufacturer, or which is buggy/poorly implemented/overly sensitive and thus capable of falsely flagging a legitimate setup as being dodgy.
I appreciate that some companies are sufficiently paranoid (or have been badly enough burned in the past) about piracy to feel that locking down their software is the only way to go. But as my own experience shows, all this does is to, sooner or later, piss off the people who've paid for the software - if someone wants to use the software without paying for it, someone somewhere will have developed a crack, keygen or other workaround for whatever protection scheme has been used. I really don't mind paying for a bit of software if it does what I want it to do at a price I can afford, but in return I expect to be able to continue using that bit of software indefinitely, regardless of how many times I might need to reinstall it on the same PC or transfer it onto completely new PCs.