I used Balinor's code in 4.1.12 but I made it so it will verify as XHTML 1.0 Transitional
Code:
{if $recommends}
{capture name=recommends}
{section name=num loop=$recommends}
{ if %num.first% }
<h1>People who bought the {$product.manufacturer} {$extra_fields[0].field_value} were also interested in...</h1><p /><br /><p />
<table border="0" width="100%"><tr><td></td>{/if}
{if %num.index% is div by 3}</tr><tr>{/if}
<td width="33%" align="center" valign="top">
<a href="product.php?productid={$recommends[num].productid}&cat={$cat}&page={$navigation_page}">
{include file="product_thumbnail.tpl" productid=$recommends[num].productid image_x=90 product=$recommends[num].product tmbn_url=$recommends[num].tmbn_url}</a>
<br />
<a href="product.php?productid={$recommends[num].productid}&cat={$cat}&page={$navigation_page}">{$recommends[num].product|escape}</a>
</td>
{ if %num.last% }</tr>
</table>{/if}
{/section}
{/capture}
{include file="dialog.tpl" title=$lng.lbl_recommends content=$smarty.capture.recommends extra='width="100%"'}
{/if}