Вы можете достичь того, что вы хотите (может не работать в старых браузерах):
#frame { ... no special css (but background should be [semi-]transparent) ... }
#frame img { position: relative; z-index: -1; }
Обратите внимание на отрицательное z-index
число. Вот почему некоторые браузеры имеют проблемы, но все современные браузеры справляются с этим просто отлично.
@ Edit: вот тестовый пример, который работает в Firefox 3.6, IE8, Safari 4 (IE6 и 7 не должны иметь положение элемента, в котором они содержатся, то есть, чтобы он работал, position: static
);
<div style="border: 5px solid red; width: 190px; height: 190px; position: relative; zoom: 1; margin: 20px">Example Text
<div style="position: absolute; z-index: -1; width: 200px; height: 200px; background-color: blue; opacity: .7; top: -10px;"></div>
</div>