Lets starts with javascript EcmaScript: today you have to make one version for Mozilla/Opera/Safari and another version for IE.
Both Opera and Firefox support some CSS3. Guess what: IE don't. What about the CSS2-standard? No, IE still not ready to use that one. I'm not sure about how much of the CSS1-standard IE7 support, but I do know that IE6 didn't support it completely.
Today you can't use xhtml properly: IE doesnt suppert documents beeing served as xhtml..
A solution many webdevelopers does today, is to create a lot of nested <div>-tags to force IE to display the page properly. Most modern browser (not IE6) support css-rules on the 'html' and 'body'-tag, and therefor div-mania can be avoided. (Well; div-mania can be avoided on IE today, so this last point isn't that relevant)
PNG-pictures is also an issue, as Rich Bradshaw pointed out.