The most important thing in the markup is to make it right. My markup shouldn't differ from the design. If elements' behavior is not thought out - how it shows or hides, how button is pressed, how menu opens - I think it out. Only if result looks great. Markup should work similar in modern browsers and in old ones, nothing should look wrong, all interactive things must always work, nothing must be missing on mobile devices. If 1% of visitors using IE7, but they can't send a form or press a "Buy" button, that means that client is lost. This is unacceptable. Every visitor got to use a working product.
I know how everything i made and can explain works in browsers. I know how all i can mark up works in browsers. I know features of old browsers. I remember most part of solutions and keeping the other part in sorted bookmarks so i can find it fast. I use new HTML5 things, which are supported by penultimate versions of browsers, but i control its correct operation in the old ones. I'm trying to avoid situations, which are difficult for browser.