Ugh IE is a nightmare for sure. Every designer's bane.
IE6 is the real monster, that just interprets shit differently for some reason. I always have issues with widths, margins ,etc. anything with sizes assigned. using absolute an drelative positioning will behave strangely as well.
The best route ive found is to do my best fixing everything to work in all browsers, which is a debugging process, and not fun, btu necessary. You load it again and again in different browsers while tweaking code.
If you hit a wall then you can use conditional tags in your header.
Code:
<!--[if IE 6]>
<link href="ie6.css" rel="stylesheet" type="text/css" /><![endif]-->
This tells the site if the browser is on ie6, load that css file. put it after the main one, and put in modified code for the parts you need tweaked to bitch ie6 into behaving
That tag works for multiple browser types, search it in google.
Other than that, we're all SOL. IE6 though is the most horrid one. 8 and 7 generally behave all right enough.