Ist im Prinzip so wie Variante 2, nur daß das wrapper-div noch zentriert wird und mit maximal-Breite versehen wird. Damit in jedem Fall etwas Abstand zum Rand gehalten wird, bekommt body ein padding.
IE kann kein "max-width", deshalb bekommt er eine JavaScript-Krücke gereicht. Die erlaubt zwar nur Breitenangaben in px und nicht in relativen Größen wie ex oder em, aber es muß es tun. Was besseres gibts nicht für IE.
#wrapper {width:expression(document.body.clientWidth < 860 ? "780px":"auto" ) }
Achtung: min-with für IE funktioniert nicht in Kombination mit <pre>!
Testseite für IE ohne <pre>
Da außerdem IE margin:auto zum zentrieren von Block-Elementen nicht beherrscht, muß man noch ein paar zusätzliche Formatierungen einbauen: body bekommt text-align:center (eigentlich ungültig für Block-Elemente) und das wrapper-DIV wieder text-align:left.
Seite mit Beschreibung Variante 4