Du mußt body
und html height: 100% geben.
Die floats in #footer müssen eingeschlossen werden (hast du vorher mit overflow gemacht).
#footer ist höher als 2em;
Am einfachsten kopierst Du den Quelltext (ohne externes css) von
themaninblue.com/experiment/footerStickAlt/good_example_short.htm
und fügst nach und nach Deine Inhalte ein.