Because IE does not properly support CSS as the W3C defines it and there are some issues with the flawed implementation which are unresolveable. CSS positioning is particularly volatile. FF's implementation of absolute positioning is just that - absolute. You define exactly which pixel you want the thing located at. IE's implementation is broken, and will ATTEMPT to position at a certain pixel, but does not allow directly adjacent objects in certain cases and will shift one object or another to another spot. If you need two images to be directly adjacent, this is going to look very, very, VERY bad.
It also has other problems with both CSS and clientside scripting support. You can fix those, but your code will not validate (Personally, I don't care about validation as anything other than a syntax checking tool, but some people take it very seriously)