Eigentlich geht es schon in die Richtung von Eli, was du willst, aber eher position: absolute als position: fixed.
Dafür ist die Höhe dann aber fixiert.
Eine andere möglichkeit wäre, einfach eine Mindesthöhe für #layout anzugeben, damit wäre footer zwar nicht ganz am Ende des Browsers wenn #layout wenig Inhalt hat, hat aber wenigstens einen gewissen Abstand.