1) WiFi chipset manufacturers and the linux kernel are and have been at odds for some time. The issue is primarily that some (many?) of the chipset manufacturers that make the machinery that runs WiFi cards don't provide open source drivers for their chipsets. Some of these make proprietary kernel-compatible drivers (often inferior to their Windows offerings), and others have to make do with hackish workarounds (NDISwrapper). I'd argue this isn't a problem with Linux as much as it is the device manufacturers. I'd also argue from the end-user perspective that doesn't matter much.
2. See (1)--there is a notorious hate-hate relationship between nVidia and Linux; I'd bet that what you've experienced is related to that, although happily will admit to being wrong (if you aren't engaged in accidental selective memory--that is, remembering times Linux froze but not Windows, even though the latter surely has frozen on you before, under similar circumstances).
It doesn't matter if it's NVidia's fault or the WiFi chipset manufacturer's fault that Linux doesn't work well out of box on OPs computer. I've had similar experiences with Linux, and all I cared about was that I didn't want to spend several hours figuring out why some graphics problem prevented my laptop from booting, or why I couldn't connect to WiFi.
Accusing OP of "accidental selective memory" when he points out that his computer freezes frequently running Linux doesn't help. Problems like this make Linux unusable compared to Windows for new-to-Linux users who are willing to try it out. That makes it a Linux problem, which Linux needs to figure out how to solve- whether that be improving their poor relationships with WiFi manufacturers or improving drivers.
This kind of double standard makes me sick: Driver-related problem on Windows? It's the fault of the driver, of course. Driver-related problem on GNU/Linux? I don't care whose fault it is, I'm just going to blame "Linux".
Basically, manufacturers are supposed to write NT device drivers, but for Linux, the onus is on Linux contributors (which sometimes happen to be the manufacturer). While ridiculous by itself, it also points to a deeper problem:
Why do we need a driver per device per OS? Come to think of it, why do we need drivers at all? Aren't such things supposed to live mainly in the firmware?
Blaming Linux will not solve the problem. Throw your questions to those manufacturers and ask them to improve the current situation. Or you can contribute to open source hardware. If you just want to blame, surly nobody could prevent you from doing that, but things will not change, and you'd be better go to Windows and be happy with it.
You're right, the Wifi chipsets have proprietary driver issues. My graphics card is one of those low end ATI models that come in cheap desktops. I've heard that graphics cards can be an issue. I wonder if I could just disable the graphics card in some Ubuntu setting. I just want to run things like vi, ssh, gcc and a browser most of the time anyway.
Intel integrated graphics are getting astonishingly better, and they're open source friendly, except for the Atoms that have the pathetic PowerVR graphics. At this point, for casual use, I don't think it's worth the hassle dealing with AMD or NVIDIA graphics.
Though, if you are burdened with having to run a video card in Linux, then AMD models have basic performance for less hassle than NVIDIA. You actually can disable the graphics card, but you probably don't want to, because you would have no bitmap graphics at all. Vi, SSH, and GCC don't depend on graphics, but a browser does.
Heck, I've got a fairly decent graphics card in this not-so-cheap laptop (that's what I hear anyways; it's an Nvidia Quadro K2000m in a Thinkpad W530) and it has problems. Apparently that's due to the Optimus "stuff", though. Fortunately, like you, 95% of my time is spent using Firefox, a terminal, SSH, and mutt, so I don't need the higher graphics capabilities.
(Although occasionally it might be nice to watch a movie at higher quality on a long flight, though.)
I'd argue this isn't a problem with Linux as much as it is the device manufacturers.
It most certainly is a problem with Linux. It might not be fair because it isn't entirely their fault, but users want something that works, regardless of the politics behind it.
2. See (1)--there is a notorious hate-hate relationship between nVidia and Linux; I'd bet that what you've experienced is related to that, although happily will admit to being wrong (if you aren't engaged in accidental selective memory--that is, remembering times Linux froze but not Windows, even though the latter surely has frozen on you before, under similar circumstances).