I've resolved this but I'm still not sure why...
In classifieds.template.php the tabs are consistently enclosed in this code:
<table border="0" cellpadding="0" cellspacing="0" align="center" width="90%">
<tr>
<td style="padding-right: 1ex;" align="right" >
<table cellpadding="0" cellspacing="0" align="right"">
<tr>
', Classifieds_DoToolBarStrip($context['classifieds']['buttons'], 'top'), '
</tr>
</table>
</td>
</tr>
</table>
I'm unclear on why the row of tabs is nested in a table within a table but I noticed that the centre table did not have a width specified.
Sure enough, when I added a width to the code:
<table border="0" cellpadding="0" cellspacing="0" align="center" width="90%">
<tr>
<td style="padding-right: 1ex;" align="right" >
<table cellpadding="0" cellspacing="0" align="right" width="90%">
<tr>
', Classifieds_DoToolBarStrip($context['classifieds']['buttons'], 'top'), '
</tr>
</table>
</td>
</tr>
</table>
All was well.
In Chrome and Firefox that nested table is actually placed outside and so has no effect. Only in IE is it nested and the lack of any width means it squeezes all the tabs in a single line..
Equally bizarrely adseller.template.php uses exactly the same format and everything behaves in IE 8.