ian:
on a 3 column setting they show as 1 line but in a desired 4 column look the price is displayed over 2 lines.
That's because it is following simple "line-break" rules.As there is not enough space in the containing element when showing 4 cols, it breaks onto the next line.
To force the specials price (when it is relevant) to show UNDER the normal price, you can try editing...
includes/functions/functions_prices.php
Line #230 : $show_special_price = ' ' . '<span class="productSpecialPriceSale">' . $currencies->display_price($display_special_price, zen_get_tax_rate($product_check->fields['products_tax_class_id'])) . '</span>';
Line #238 : $show_special_price = ' ' . '<span class="productSpecialPrice">' . '<s>' . $currencies->display_price($display_special_price, zen_get_tax_rate($product_check->fields['products_tax_class_id'])) . '</s>' . '</span>';
Line #240 : $show_special_price = ' ' . '<span class="productSpecialPrice">' . $currencies->display_price($display_special_price, zen_get_tax_rate($product_check->fields['products_tax_class_id'])) . '</span>';
To
Line #230 : $show_special_price = '<br />' . '<span class="productSpecialPriceSale">' . $currencies->display_price($display_special_price, zen_get_tax_rate($product_check->fields['products_tax_class_id'])) . '</span>';
Line #238 : $show_special_price = '<br />' . '<span class="productSpecialPrice">' . '<s>' . $currencies->display_price($display_special_price, zen_get_tax_rate($product_check->fields['products_tax_class_id'])) . '</s>' . '</span>';
Line #240 : $show_special_price = '<br />;' . '<span class="productSpecialPrice">' . $currencies->display_price($display_special_price, zen_get_tax_rate($product_check->fields['products_tax_class_id'])) . '</span>';