1: fácil
#principal {
background-color:
blue;
...
2: en FF e IE7
si por verse igual entiendes "exactamente igual", es imposible en un 99'9% de los casos
Lo que sí se puede hacer es que se vea razonablemente parecido.
Y en tu caso, la diferencia es la proporción. Debido al distinto tamaño de fuente que pueda estar definida en uno u otro navegador lo que cambia es el tamaño en pixeles de un elemento, pero no la relación que hay entre los distintos elementos.
Para "forzar" a que i66 se "comporte" razonablemente bien, tienes dos opciones (entre otras posibles): utilizar una hoja de estilos específica para contrarrestar ciertos fallos o el famoso js que se ha mencionado varias veces por estos foros.
Y de ie5.5 casi mejor lo olvidas a estas alturas
3: aunque no lo planteas
:
los estilos en el head se colocan entre:
<style
type>
</style>
según el doctype declarado.
Un saludo