aunque te parezca mentira, Firefox está en lo correcto y es el IE el que se equivoca.
todo es debido a lo que se llaman
Collapsing Margins
lo mejor en estos casos es no darle margin top al #menu y darle padding-top a la cabecera o agregarle un padding-top a alguno de los divs para que de esa forma no se colapsen los márgenes