What “just works” depends on the hardware. I have hardware that won’t work with Linux. I have hardware that won’t work with any Windows NT-7 RC.
On Linux when hardware is supported by an open-source driver it is usually supported forever. On Windows the manufacturer decides what to support and when. I have lots of usable hardware that won’t work with Vista or 7RC because the manufacturers decided to not update their drivers. If you buy a new PC that the OEM has installed Linux or Windows on then you don’t have any problems.
Installing programs that aren’t in a Linux distro’s repositories is more difficult than Windows programs that aren’t in Windows Update, but not impossible for beginners. It would be nice if the commercial application developers would make their Linux installers friendlier (Doom3, Quake4, UT2004, Prey) but it hasn’t happened yet.
The difference between the two is general performance, security, and cost. I don’t see the point of needing a gig of memory to get an OS to perform adequately. Windows has too much overhead, even without Aero. I’ve never had a Windows system, including Vista, last more than two months without malware infection or registry corruption on a variety of retail and home-built systems. Windows security applications are a joke and just slow the system down (especially Symantec). Add in the usual licensing and authentication hassles and it’s not worth it. I can install Linux on any number of systems, with any hardware configuration, for any type of user, for any purpose, without having to pay more or authenticate with anyone.
There are programs that work on Windows but not in Wine but most have free replacements. For a few critical ones I use VMware since it’s easy to just delete the Windows drive image file and restore it from backup. It runs faster for most Windows programs (excluding 3D) since I don’t have to bother wtih anti-malware or firewalls.
Bugs are annoying on any OS but with Linux I have a lot more influence to get them fixed than with Microsoft. If Ubuntu doesn’t fix one that is causing me problems then I just switch to a different distro.