Printers are never a problem if you buy from right company. HP Linux driver
is fully free. http://hplipopensource.com/hplip-web/index.html
Now back on topic. Problem is not that you cannot find good free driver for
any graphic card out there, infact, most of the people do not care about
freedom: They care about utility. Ubuntu is great example. With nonfree
firmware, drivers and software like steam in Software Center Ubuntu started
showing some utility (and rapidly gaining popularity).
The real reasons why GNU/Linux "hasn't crossed the desktop chasm" can really
be fixed by writing programs. Here are few problems I encountered trying to
promote GNU/Linux:
1) Lack of specialized software: While I was able to offer wide range of
software to an artist (gimp, inkscape, scribus, blender...) I couldn't offer
anything to civil engineer. Sure, there is FreeCAD but due to stubbornness of
rms it doesn't load DWG files. Read:
http://libregraphicsworld.org/blog/entry/libredwg-drama-the-end-or-the-new-beginning
and:
http://libregraphicsworld.org/blog/entry/whats-up-with-dwg-adoption-in-free-software
2) Shockwave Flash. Gnash looked promising, but development is stalled. It
can play youtube videos which aren't avaliable on html5, but won't stream
some other sites. (Notably, it won't stream any anime)
3) Bugs. I noticed interesting phenomenon: Average end user is MUCH MORE
capable of finding bugs than programmer or superuser. While I am generally
not affected by bugs, those on whose computers I installed GNU/Linux on are.
I feel like tech support :/
4) Fragmentation. Why is there qcad and freecad? Why is there gnash and
lightspark? Why are there totem and vlc? Side effect of this is: Lightspark
plays avm2, gnash doesn't. However, lightspark can't play some stuff gnash
plays so you end up installing both. It gets more ridicilous: vlc streams
rtmp, totem doesnt. totem streams mms, vlc doesn't.
Oh and not to mention all the effort wasted on features offered by both
options.