In effetti l'altezza è meglio non fissarla.
Potresti provare con una cosa del genere, anche se migliorabile:

Codice PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<
html>
  <
head>
    <
title>Liquid tre colonne</title>
    <
meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <
link rel="stylesheet" href="stile.css" type="text/css" media="screen" />
  </
head>
  <
body>
    <
div id="header">
      <
h1>Header</h1>
    </
div>
    <
div id="sidebar_a">
      <
h2>Sidebar A</h2>
      

...
contenuto sidebar A</p>
    </
div>
    <
div id="sidebar_b">
      <
h2>Sidebar B</h2>
      

...
contenuto sidebar A</p>
    </
div>
    <
div id="content">
       

...
contenuto...</p>
    </
div>

    <
div id="footer">
      <
h3>Footer</h3>
    </
div>
  </
body>
</
html
mentre il CSS potrebbe essere:

Codice PHP:
/*
* =HEADER
--------------------------------------*/
#header{
  
background:#DDD;
  
border:2px solid #777;
  
padding:10px;
  
margin:0 0 10px 0;
}

/*
* =CONTENT
--------------------------------------*/
#content{
  
padding:10px;
  
border:1px solid #777;
  
margin:0 3010px 30%;
}

/*
* =SIDEBAR A
--------------------------------------*/
#sidebar_a{
  
float:left;
  
padding:10px;
  
border:1px solid #777;
  
width:25%;
  
margin:0 0 10px 0;
}

/*
* =SIDEBAR B
--------------------------------------*/
#sidebar_b{
  
float:right;
  
padding:10px;
  
border:1px solid #777;
  
width:25%;
  
margin:0 0 10px 0;
}

/*
* =FOOTER
--------------------------------------*/
#footer{
  
clear:both;
  
background:#DDD;
  
border:2px solid #777;
  
padding:10px;
  
margin:0 0 10px 0;

In pratica si fa il float a destra e a sinistra delle due barre laterali, e si assegnano dei margini destro e sinistro alla colonna centrale appena un po più larghi delle barre. Ho un esempio qui.
Poi all'interno di ogni colonna puoi organizzare il contenuto in vari div o liste