As Eric said, a lot of big websites don't validate, however, if you start with a validating website that works perfectly in, for example, Firefox, Safari/Chrome, or Opera, chances are it will be right or mostly right in the other 3 and will only require minor adjustments for them to be right.
Then you can work on any hacks that might be needed for Trident based browsers like IE. For the majority of general websites, the hacks needed to make things work in IE7 and IE6 will still be valid.
Once you are at that point, it's easy to debug any problems and then start making any adjustments/hacks that don't validate.
It's easy to determine what browser is being used (assuming it's sending the correct user agent) with PHP if you can use server side programming, or alternatively with JavaScript on the client side, and then you can load a specific stylesheet on top of a regular stylesheet for each browser. IE6 and 7 have HTML hacks that don't require any extra work to load specific stylesheets for them, but there isn't anything available for the Gecko, Webkit or Presto browsers (Firefox, Safari/Chrome or Opera) so an alternate method is needed for anything specific to these browsers.