As a developer in any non-web language (Read: anything but HTML and CSS) there's pretty much only 1 hard and fast rule: it's not the compiler/interpreters fault. It's yours. One of the differences between a good programmer and a bad programmer is knowing that you can't blame to the tools for something that you did.
When I was just starting out in C, I remember being convinced on numerous occasions that the Turbo C compiler had a bug because my code **had** to be right - I'd double checked it a number of times - and there **had** to be a bug in the compiler. But there never was - it's pretty close to 100% of the time not compiler/interpreter/debugger's fault.
Except with CSS and IE/Opera/Safari/Firefox/Epiphany/Konquerer (insert your least-favorite browser here - I'm guessing IE, but that's just me.)
Browsers wouldn't just randomly double margins or change list items whitespace or not position objects correctly? Would they? Things are getting better as IE6 finally phases out, but that's also part of the problem - my memory of all the necessary IE6 hacks is starting to fade.
But it's still not perfect (is your browser 100/100 on the Acid3 - Firefox 3.5.5pre Ubuntu is still 93/100?) Since browsers still render things differently and react to the same code differently (and often all incorrectly according to the standard) - you have a situation where fairly often it's the language's fault. And since us programmer's are generally egotistical types, give me an inch of believing that it's not my fault and that will be my first conclusion half the time. Even if it turns out that it's just a darn missing semicolon; again.
....and follow @cykod on twitter