%を使っている以上、あふれるのは仕方がないと思います。なんでこんなレイアウトにしてるんです?リキッドレイアウト?
修正案を出しておきますが、質問者がどのように直したいのかが分からないと、難しいです。
#content { margin: 0 360px 0 20px; width: auto; } #primary { float: left; margin: 0 -320px 0 0; width: 100%; } #secondary { float: right; margin-right: 20px; width: 300px; }