Why don't all web browsers render the same?

Joel has a very good article on exactly this matter

In theory - Firefox, Chrome, and all IE versions after and including IE7 are standards-compliant. There are still some little quirks though, which can be annoying as hell when designing a web page.

It depends on the context. Browser != Medium

I think what people mean is that pages should appear the same across browsers on a given medium. If you’re a regular person using a regular PC, a page should ideally look the same whether you’re using IE or Firefox or Opera.

On the other hand, a page probably should not be the same when viewed on Opera on a computer versus Opera on a cell phone with 1/10 the screen size and resolution.

Still, many websites can be viewed the way users want (if they bother to configure them) using special screen-reading software, computer-wide accessibility options, turning off images, or user stylesheets. The great majority of people don’t care; they just want to go to a website and have the info they want presented to them in a familiar way. There’s nothing wrong with that.

It’d be great if every website provided one design for regular people, one for the hard of sight, one for the hard of hearing, one for every language spoken, one for every mobile device, one for the colorblind, one for… etc, etc., but normally only giant megacorps afraid of the ADA have the resources to really pull that off.

The rest of us… we do our best, but it isn’t easy, and cross-browser incompatibilities certainly don’t help. The ten hours we spend making sure a website looks the same on IE and Firefox (to a “regular” demographic who don’t really even know, or care about, the difference between the two) could be much better spent elsewhere – such as creating special stylesheets for printing or for text readers.

It is, sort of. But in practice, HTML 5 was a reaction against the proposals coming slowly from W3 and an attempt to push the technology further without a lot of bureaucracy. It consists of a whole bunch of stuff that’s partially implemented in different browsers and the idea seems to be to just think up something, try the stuff in the wild and see what works best.