Buenas.
Lo que yo creo que ocurre es que según la W3C, la forma correcta de calcular el tamaño de una caja es el contenido+el padding+el borde, es decir, que una caja que mide el 100% y tiene un borde de 1px, en realidad mide 100% + 2px.
¿Qué significa esto? Que como tienes una caja colocada a la derecha, pero como ya comentamos, con un float left y un margen negativo igual a su tamaño (100px), al deplazarla 100px a la izquierda no está en su sitio adecuado y sencillamente no cabe.
<div style="float:left; width:100px; margin-left:-100px; background:green;">columna derecha</div>
Si pruebas a cambiar el margen negativo real para encontrar su sitio, es decir, 102px (sus 100px + los 2px del borde de la caja central), comprobarás lo que te digo (creo
)
Ah, ¿y por qué IE lo hace supuestamente bien? Por que entre sus errores está considerar el tamaño de una caja como todo el conjunto, es decir, una caja con un contenido de 100px con un borde de 1px más un padding de 2px, en realidad para él mide 100px, sólo que el contenido ahora tiene 94px.
Mikel.