Чтобы колонки были "резиновыми", ширина раздела контента указана в процентах.
К колонке с контентом применено float: right;, чтобы она прижалась вправо, а колонка с меню поднялась на один уровень с ней.
Чтобы меню не залезло под контент, у него установлен margin-right: 80%;, соответствующий ширине блока с контентом.
Если высота контента окажется больше, чем меню, остаться внизу футеру поможет отмена обтекания clear: both;