Тоже столкнулся с этой проблемой. Оказывается Опера вообще игнорирует высоту в процентах в заголовке таблицы (!но не в <td>) и в размере <img>. Это логично, если высчитывать высоту исходя не из размера окна браузера, а из размера документа - чтобы перевести проценты в пикселы, надо знать высоту всего документа, а для того, чтобы знать высоту всего документа, нужно учесть высоту таблицы. В пикселах. Но почему-то с шириной всё не так.

Код:
<script language="JavaScript">
if(window.opera)document.write('<table width="100%" height="'+innerHeight+'" border="1" cellpadding="0" cellspacing="0">');
else document.write('<table width="100%" height="100%" border="1" cellpadding="0" cellspacing="0">');
</script>
<tr><td height=20>
<tr><td>
<tr><td height=20>
</table>
А ещё, если свф в таблице, и размеры его - в %ах, то ИЕ и Опера проценты высчитывают от размера ячейки таблицы, а НН (гад!) - от размера всего окна браузера.