I like tools like StyleCop and FxCop. When I was “pair-working” with our resident CSS master I noticed how he could determine what was wrong, or would be wrong, just from looking at the markup and stylesheet. “Block elements inside block elements” and such. The broken box model in Internet Explorer 5 is legendary, if you’re using width and padding on something it probably won’t look like you wanted it too.
I believe you can determine possible rendering bugs in various browsers through static code analysis and applying a (giant) set of semantic rules. You could have this as a step in your deployment process to warn you that some pages might look incorrectly in certain browsers, so you can optimize your tests. The real problem is collecting all those rules.