Mira, el problema es que el 100% busca el % de resolucion que tienes (considera que los navegadores ocupan un % de la resolucion) asi que tienes que desarrollar algo del estilo:
Código:
<style type="text/css">
<!--
html,body{margin:0px;}
#contenedor{height:80%; border:1px solid #FF0000; padding-bottom:40px;}
#pie{height:40px; margin:0px 0px; border:1px solid #FFFF00;}
-->
</style>
</head>
<body>
<div id="contenedor">
contenido
</div>
<div id="pie">pie</div>
</body>