and another problem is that , many web site projects (detailed large projects) although written for common browser usage , it works under one or two browsers "normally/acceptibly".. but not in all..
the solution is that the browser producer firms must come together and agree on new standards.. or we will continue to creep 
This does make development more difficult and time consuming. Standards are interpreted in different ways, a classic being how padding is handled by IE and Mozilla. I personally prefer Microsoft's interpretation, but on the downside, IE does some very weird things with bottom borders with images, which is a pain.
Unfortunately, when things are developed in a different era like HTML, JavaScript etc, their crudeness were acceptable for the hardware standards at the time, but now things have moved on they are not. Using objects as associative arrays in JavaScript is a pain, where they have many annoying limitations. JavaScripts fragility is also a pain, where one minor error will stop the interpretation and execution of the rest of the script!