#1 Tendrías que saber que el atributo position:absolute hace que el elemento salga del flujo normal de HTML.
Es decir, tu pones
<div id="contenedor">
<div id="mierda" style="position:absolute;height:1000px;"></div>
</div>
y el div 'contenedor' tendrá un height de 0px, porque dentro no tiene ningún elemento. Para que lo veas claro, en el div contenedor quitale el atributo height:100% (dejalo en auto) y después al div general quitale el 'position:absolute' y verás como el div crece de repente.
Además al principio del fichero te falta la declaración DOCTYPE
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
Sin ella cada navegador actuará como le salga del nabo. En el header tienes un META mal escrito
<META name="keywords" content=content="Risk, online, multijugador">
Y por alguna razón (algo tendrás mal escrito) el firefox interpreta tu web de la siguiente forma (lo puedes ver usando firebug).
<html>
<head>
</head>
<body>
<html>--> WTF!!?
<div id="contenedor">resto de la web</div>
</html>
</body>
</html>
La forma normal de maquetar una web como tu lo estás haciendo sería esta:
<div id="contenedor" style="width:600px; margin:0 auto;background-image:url('IMAGENQUEHARIALAFUNCIONDEBARRAIZQUIERDAYBARRADERECHA');image-repeat:repeat-y;">
<div id="menu" style="float:left;width:100px;">
</div>
<div id="general" style="float:right;width:490px;">
</div>
<div style="clear:both;"></div>
</div>
Y todos los divs que has puesto para meter los bordes y cosas así (la barraI o barraD) se pueden conseguir con backgrounds-image, con borders y con background-colors, todo es pensarlo un poco mejor.