"But It Works In Internet Explorer..."
When I'm reading web fora, or triaging bugzilla reports, any complaint about the way Mozilla (or Opera, or [insert minority web browser here]) renders a page is usually followed by the cry "But it works fine in Internet Explorer".
Computers, while they have their uses, are spectacularly dumb. They follow the instructions that they have been given to the letter, very rapidly. They have no ability to make value judgements; no way of telling what an author/programmer intended, only a set of coded instructions, which they will follow without question. So one mistake in the instructions can stop a computer dead in its tracks, or send it into "Sorcerer's Apprentice Mode" Just look at the number of times NASA have lost space probes because someone put a minus sign in the wrong place, or got a number wrong.
This behaviour is well known in computer science, and even has a name: Garbage In, Garbage Out, or GIGO. In short, if your input (code or data) is garbage, then your results will also be garbage.
The HTML that forms a web page is just such a set of instructions, telling the browser software what to display. So what happens when there is a mistake in the instructions?
While the HTML specifications say how correct HTML should be written, they make no mention of what a browser should do if the HTML is wrong. So this is one area where differences between browsers can creep in. Different browsers react in different ways.
The older browsers had so many glitches, mistakes and misguided "features" that web authors became used to the glitches, and even started to rely on some of them.
A good example of this reliance is the use of the "alt" attribute on images to show a tooltip. This "feature" can actually be regarded as a bug - the "alt" attribute is supposed to be used to provide an alternative, ideally a brief text description of the image, that can be used by browsers that can't show the image for whatever reason. The "title" attribute should be used for additional information, and many modern browsers will display this attribute as a tooltip. The "title" attribute has the additional advantage that it can be used on any tag, not just images. Putting tooltips that don't describe the image in "alt" tags can make life difficult for people using non-image capable browsers - and some people, such as the blind, don't have any choice in the matter.
Of course, it's not just the blind who make use of the image descriptions in "alt" attributes - how do you think Google's image search knows what's in a picture? Or it would do, if more people used decent alt tags. This is why some newer browsers, such as Mozilla, don't display "alt" attributes as tooltips. The browser is encouraging you to do things the correct way to get the effect you want, rather than letting you keep doing it in a way that causes problems for users of text only browsers.
In addition, during the early years of the web, before HTML was standardised, many web browsers supported proprietary extensions. This trend was most prevalent at the height of the IE4 versus NN4 "browser war". Unfortunately, many web authors and authoring tools learned these extensions, and are still trying to use them. Most of these techniques only ever worked in one browser, and many newer browsers don't support them at all.
Many of the "browser compatibility issues" are simply instances where different browsers react differently to bugs in a web author's code, or ignore proprietary extensions introduced by rivals. Many people have become so used to Internet Explorer's quirks that they don't bother to check whether their HTML is correct.
The Netscape browser, even in its older incarnations, had a well-deserved reputation for being picky. If there was a major error in the HTML, it wouldn't just sweep it under the carpet and try to cope - it would freak out. If you load a web page in Netscape, and a huge chunk of the page is missing, it probably means that there's a big problem, such as a missing </table> or </td> tag. Netscape aren't doing this just to wind web authors up - they are doing it at least partly to help authors write good code, by making it blindingly obvious that there is an error in the code. Unfortunately, many people seem much more willing to blame the browser than admit that there is a mistake in their HTML.
Conversely, Internet Explorer is remarkably fault-tolerant. I've seen pages with HTML so bad that I am surprised anything could render them - haphazard piles of seemingly randomly arranged HTML tags - that somehow rendered how the author intended in IE. Never mind little (!) things like missing </table> tags, I'm talking missing <body> tags, mis-spelled tags and missing ">" characters here. Other browsers, or people trying to understand the code, don't stand a chance of matching IE's behaviour in those circumstances. The cynical may argue that this is a deliberate strategy on Microsoft's part to fill the web with pages that only render in IE.
Nowadays, there are other tools, such as the W3C Validator, to help authors tidy up their code, but cross-browser testing can still be a good way to find problems. Just remember, if you find a page that renders badly in another browser, the first thing to do should be to check the HTML, rather than just blaming the browser.