Yo hace tiempo necesitaba algo parecido, pero en mi caso necesitaba que fuese semánticamente más correcto, entonces, si no había contenido en una columna, esta no aparecía y la otra ocupaba el ancho de la que no estaba, y si había contenido tomaba el ancho con el truquito del overflow. Algo así sería:
Código CSS:
Ver originalsection {
width: 100%;
max-width: 960px;
}
article {
overflow: hidden;
border: 1px solid blue;
}
aside {
float: right;
width: 320px;
border: 1px solid red;
}
Para un estructura así:
O así:
Ejemplo funcional:
http://jsfiddle.net/TjSbX/