Credo che per un progetto nuovo dovresti usare la DTD XHTML 1.0 strict: e` molto piu` proiettata al futuro (e ad IE8).
Per le due-colonne / una-colonna, credo che potrebbe bastare togliere la larghezza:
se c'e` l'immagine (ma non deve essere racchiusa in un suo <div> personale) si prende il suo posto, se manca o se e` piccola lo spazio viene lasciato all'altra colonna.
MA ...
ma devi usare marcatura semantica, altrimenti tutti (o forse solo parte di) questi discorsi cadono.
Un testo inserito direttmente in un <div> non e` semanticamente corretto.
L'immagine inserita in un <div> non ha senso (e crea poi problemi nel CSS).
Come dire: make it simpler ... you'll have less problems.
E dato che ci siete, potreste dare uno sguardo all'accessibilita`: fare una pagina accessibile non costa di piu`, ma occorre impostare la cosa correttamente all'inizio, altrimenti poi rendere accessibile costa.
Il primo passo (a costo zero assoluto) e` usare XHTML Strict; il secondo e` seguire i 22 requisiti della legge 4/04. Per il resto occorre piu` esperienza e comunque non e` cosi` importante, una volta che i 22 requisiti sono rispettati.