Hola victor, a mi me ocurrió un problema similar en una subpágina. Eso se debe a q los diferentes navegadores tienen diferentes márgenes, rellenos, altos de línea y otros parámetros en su configuración por defecto.
En tu hoja de estilos, donde dice (/* basic text elements */), en la línea de "ul li {margin: 0px;}" escribe "ul li {margin: 0px, padding:0px; text-indent:0px; line-height:100%;}" para asegurarte que se mantiene coherente.
Además para que se aplique la altura ("height") a un enlace ("a") o a un span, previamente has de añadirles la propiedad "display:block", que me he fijado que no la has añadido.
Finalmente, demasiado a menudo internet explorer causa errores al utilizar los selectores de elemento siguiente, o elmento hijo (li + a, li > a), encuentra la forma óptima de expresarlo de forma que efectivamente se seleccione lo que quieres.