Also windows is not perfect either, my old scanner doesn't have windows 7 drivers and will never have it seems. It works just fine in XP and Linux.
Sometimes things break, they even break in software that cost shitloads of money too. Six month old Oracle EBS SR with localization(!) problem - not critical, but surely half a year is enough to swap two strings. Sometimes it doesn't work well with some server vendor too (I don't know all details about this one).
Don't blame canonical for all the software in the distro, all they really do is adding eye candy and try to make it nicer, but they can't fix everything.
I find it silly when people try to force other people to migrate to Linux - show them around, tell about ups and downs and let them decide if they want to try it.
I use linux not because it open source, but because it does most of the stuff I need better. My parents use windows PC, because they can just install that thing which came with new printer and it works without calling me, despite I could probably make it work in linux just as easy since I know how to.
And for God's sake, don't install linux if you play games most of the time, but you read linux is better on the interwebz. Stop hammering nails with a microscope already!