Having done a little professional web designing myself, let me share some tips I've come across....most are common sense after doing this one or two times, so I'm sorry if what I'm saying is below your experience.
1. Code first and foremost to standards. Make it work right in Opera and Firefox first, and ignore IE until you get these two down. Firefox will be probably be easiest to make it work right since it's flexible with HTML and CSS input. I mention Opera here because it can be rather Javascript and CSS strict, and this will help ensure a broad compatibility across many browsers if you get this one down.
2. Implement whatever hacks are required to make it work in IE.
Don't delete any standardized code; merely add-on to make IE work. You may find that you'll have to structure your HTML and CSS differently or use different macros for this to work (ie. input-tag type buttons instead of the button-tag type buttons). In Javascript, you'll probably have to implement the same code twice using slightly different functions depending on what browsers you're using.
3. Try to keep your HTML and your styling as separate as possible. Far easier to change in the future. Rely on CSS for your styling and layout rather than hard-coded HTML layout when reasonable, as it eliminates a good deal of the nuances that can crop up if you're trying to get a layout exactly perfect in every browser.
You're right that HTML is HTML no matter what...it's just that the standards IE uses for CSS and Javascript are not the standards everyone else uses, so things break really easy once you get past static rendering. I feel your pain in making these things work right, as it's very hard.
Some useful links:
www.w3c.org
www.w3schools.com (repeated from above)
www.javascriptkit.com (good for IE-compatible code and examples)
www.htmlhelp.com
Google is also very much your friend for webdesigning hacks.