Sólo es necesario hacerlo tal como dice Kseso?. Es extremadamente sencillo y cumple todo lo requerido.
   Cita:  
					Iniciado por kseso?  
  De nuevo:
Si en el html aparece primero su menú sólo necesita flotarlo y darle una anchura.
El siguiente div si no lo limita declarando anchura ocupará todo el espacio sobrante. Es así por los valores y propiedades intrínsecas a cualquier elemento de bloque.
Otra cuestión es que tenga otros elementos/propiedades que lo impidan (y que nosotros desconocemos).
O quizás a lo que se refiere es a que queda un pequeño espacio libre entre sus div's y el body?
Si fuese eso, resete a Ø los margin
    Un ejemplo: 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Sin título 1</title>
<style type="text/css">
* {
	margin: 0; padding: 0; /* esto es un reset básico */
}
html, body {
	width: 100%; height: 100%;
}
.menu {
	width: 250px;
	height: 100%;
	float: left;
	background-color: #ccc; /* fondo sólo para ver el efecto */
}
.contenido {
	height: 100%;
	background-color: #900; /* fondo sólo para ver el efecto */
}
</style>
</head> 
<body>
<div class="menu">
	<p>espacio para el menu</p>
</div> 
<div class="contenido">
	<p>espacio para el contenido</p>
	<p>si haces un resize verás que siempre se mantiene la estructura igual</p>
</div>
</body> 
</html> 
El editor no me deja usar code.