Ну чисто для ie6-ie7 остаётся два варианта: применять реальные таблицы (тэг <table> вместо <div style="display: table">), либо писать JS (можно даже прямо в CSS с помошью expression-синтаксиса попробовать)
Хотя судя по последней статистике обе эти версии уже можно спокойно хоронить, но дело конечно ваше.
Внешнему div'у, в котором картинка, ширину задайте и padding.
<div style="background-color: red; padding: 10px; width: 100px;">
<img src="image.jpg">
<p style="margin:0">Эта строчка будет переносить сколько нужно раз</p>
«Содержимое блока, если не помещается в заданные размеры, отображается поверх блока.» Как-то все-таки нужно ширину знать. Можете показать более конкретный пример? Где именно используется?
Да в общем-то это картинка с подписью в любой статье. Вот гипотетический пример jsfiddle.net/mWXrP/1/. Только это вариант, когда ширина задана, а у нас она заранее неизвестна.