Div tags do not have default margins so there is no need to address them. They work the same in all browsers.:)
Why your code doest work in IE? Becuase browsers somtimes handle CSS properties, like "posistion" much differently.
Apart from the odd bug "position" is handled pretty consistently cross browser.
To tell browsers to handle code the same is pain! Check out IE fallback CSS, that would be start to renending a functional page in IE atleast.
Most of the time you don't need to do anything special if you have coded correctly from the start. Take care of the defaults and take care of well known bugs in older browsers if older IE support is needed (haslayout, double margin bug etc). Don't slap alternative code on a layout unless you know its a bug or a browser's peculiarity. Most of the time its the authors fault and not the browser.;)