Ursprungligen inskrivet av andrin
I det här fallet så är det nog så att har du ju sagt att höjden på #main ska vara 650px då blir den det också. Att IE tolkar detta fel är ju MS problem. Du bör alltid utgå från en webbläsare som stödjer webbstandarderna något sådär och tweaka för äldre och sämre webbläsare. Det är betydligt enklare.
#container har height satt till auto vilket innebär att den kommer att kollapsa höjdmässigt och bli så liten som den kan. Dess child är ju #main där höjden är satt till 650px. #container blir alltså 650px + ev. paddings och margins som spelar in. Inget konstigt här alltså. Gör om, gör rätt.
Sen har du helt och hållet tagit dig vatten över huvudet när du använder dig av dokumenttypsdeklarationen för XHTML 1.1:
Om du inte vet vad det innebär att använda XHTML 1.1 så gör det inte. Jag rekommenderar att du byter till vedertagen HTML 4.01 eller XHTML 1.0 Transitional. Du kan t.ex. inte servera XHTML 1.1 till IE.