The myth that Linux doesn't have good hardware support has always been untrue. While you could say that it might take a bit of time for new hardware to show up in the "supported" list, Linux probably has better support for more hardware than Windows. And the proof of that is in the fact that whatever device you have, someone has already tried it in Linux before and most probably, tried it successfully.
On top of that, drivers for devices are rarely removed from the kernel, if ever. Compare that to the fiasco of Windows Vista, where a lot of older hardware simply refused to work. Although a lot of device manufacturers fixed the problem by releasing updated drivers, there's still a good amount of hardware that's lying around uselessly because Windows Vista doesn't support it anymore.
On topic though, good hardware-accelerated graphics has always been one of the sore points in Linux. Although you are guaranteed to have a graphical interface and your video card will be recognized in Linux, 3D acceleration will be missing. Since both NVIDIA and AMD (previously ATi) work so hard to eke out every ounce of performance from their hardware, and since they have contractual obligations with many other companies, they're generally very silent about the hardware specifications. This means that Linux developers pretty much have to shoot in the dark when it comes to graphics drivers. So even though the kernel has display drivers for more hardware than Windows, a lot of it is by reverse-engineering, and therefore unsupported by manufacturers. On top of that, most of the proprietary features are unusable by the default drivers and you have to use the proprietary drivers to use those features.
And that's what this guide is about. Since there are way too many distributions to cover specifically, I'll be referring to the documents given by AMD/ATi and Nvidia which should work on all distributions. The downside of this method is that your package manager will not handle driver updates and you'll have to do them manually. If you'd like your package manager to handle the graphics drivers, refer to your distribution's documentation for the same.