My first home computer was an Amstrad CPC6128. In terms of hardware, it was miles in front of the C64... faster loading times, better sound and colour... but for some reason they chose a proprietary disc drive that used (at the time) discs that cost $10 each and weren't compatible with any other system. On top of that, the marketing was terrible so the C64 got way more games. It had one feature that was particularly impressive (particularly since MS hasn't learnt from them and implemented a similar system), the Z80 processor, being 8bit, could only address 64KB RAM, but they broke the RAM up into 16KB banks and supplied 128KB total, with 16KB banks that could be switched in and out in software (while maintaining its contents). It was mostly used as video RAM, but it was innovative at the time, and a similar system could enable 32bit systems to address more than 4GB.
While we're on the topic of 32bit memory addressing, all 32bit versions of XP, Vista, (and probably W2K) are able to address the full 4GB if you disable the memory page file (set the size to zero). I tested this on Vista for the short time I had it, and it worked fine. I believe the pagefile is counted in the total addressable memory, so disabling it gives you access to actual hardware RAM.
An addition to Stu's comment above about driver sizes etc. The reason for this is shared libraries. Most Linux programs and drivers are built using libraries that are common to most other programs/drivers. Unlike Windows, this allows the library to be installed only once, and used by all the programs that depend on it. It is possible to compile statically linked programs on Linux, but isn't common. Even the dynamically linked libraries on Windows seem to be proprietary from each software vendor, which means a lot of reinventing the wheel going on. I guess that's just an ideological difference between proprietary and open source software developers. It could also be due to the proprietary developers being unable to use open source libraries due to licensing restrictions with the GPL and the like. Using GPL'd libraries forces them to open up their source and forces them to use the GPL too. Very few GPL'd libraries are also available under the LGPL (which would allow them to keep their source closed)... Just another ideological obstruction for proprietary software developers.