It doesn't matter if you do all the error checking in the world, or if you have the most beautiful graphics, if your site or application design isn't usable, it's not going to do well. Get input and advice on usability and user interface issues here.
Why not implement <h3> or <h4> or even <h5> tags? Ideally you would think there would be one <h1> tag and everything would be descended from there (at least that is how I do it).
I usually do it like that too. There are exceptions though. Text-heavy sites get multiple h1 tags sometimes for my simply because if they don't I run out of header tags