People who write web browsers know how insanely complex a good browser has to be. The problem is that a lot of design decisions for the web were done in a very lax, ad hoc manner. There are standards, but a lot of content does not obey them. When users encounter the content which does not work in their browser, they tend to blame the browser. This leads to more and more of the “black magic” in browser engines and the web content which more and more relies on very subtle (and non-standard) features in the browsers. And any subtlety that some web content uses has to stay in the browser engines effectively forever. This hurts content portability and usability.
To avoid the same sort of problems with eBook content, it is important to make sure that the content does satisfy the standard. This is especially important to make sure that eBooks work well on mobile devices where adding special-casing to “fix” broken content might be simply too expensive. The best way to make sure that the content is standard is to develop a tool that can validate epub files.
The need for such tool was for a long time recognized by IDPF members. As we were developing epub standard, we did the work on validating epub files. Now this tool (named EpubCheck) is available as an Open Source project. It is not complete (there are still many checks that we can do), but it is already fairly mature and extremely handy. If you author epub files, you should consider running this tool on your content regularly. Standard content is much less likely to have problems in today and future eBook readers and any problems with fully-compliant eBooks are much more likely to get serious attention of the developers. If you are a developer, I would like to invite you both to use EpubChecker code in your development (it is licensed under BSD terms) and to contribute back to the project.