Thought i'd post my solution for 4.4.1:
This is the product variant table as I have it setup thanks to some direction from the board:
Code:
{* Determine if product has variants *}
{if $variants}
<table class=inlineSpec width="100%">
{* Build table header *}
<tr class="specHeader">
{* Loop to handle multiple variant names *}
{foreach from=$product_options item=v}
{if $v.is_modifier eq ''}<TD>{if $usertype eq "A"}{$v.class}{else}{$v.classtext|default:$v.class}{/if}</TD>{/if}
{/foreach}
<td >{$lng.lbl_price}</td>
</tr>
{* Build table rows *}
{foreach item=variant from=$variants}
{assign var=exception value="0"}
{foreach key=ExceptionKey item=exceptionList from=$product_options_ex}
{assign var=found value=0}
{assign var=total value=0}
{foreach item=classException from=$exceptionList}
{math assign=total equation="x + 1" x=$total}
{foreach name=l1 item=variantOpt from=$variant.options}
{if $variantOpt.optionid eq $classException.optionid}{math assign=found equation="x + 1" x=$found}{/if}
{/foreach}
{/foreach}
{if $found eq $total}{assign var=exception value="1"}{/if}
{/foreach}
{if $exception ne "1"}
<tr class="specItemHeader{cycle values="1,2"}">
{* Loop to handle multiple variants *}
{foreach name=foo item=variantOpt key=key from=$product_options}
{if $variantOpt.is_modifier eq ''}
<TD>
{foreach name=bar item=varOpt from=$variant.options}
{if $varOpt.classid == $variantOpt.classid}{$varOpt.option_name}{/if}
{/foreach}
</TD>
{/if}
{/foreach}
<td>{include file="currency.tpl" value=$variant.price}</td>
</tr>
{/if}
{/foreach}
</table>
{/if}