OK find a file called category-row.php.
It is in includes - modules - yourtemplate - category-row.php
At about line 39 you will find:
$list_box_contents[$row][$col] = array('params' =>
'class="categoryListBoxContents"' . ' ' . 'style="width:' .
$col_width . '%;"',
'text' => '<a href="' .
zen_href_link(FILENAME_DEFAULT, $cPath_new) . '">' .
zen_image(DIR_WS_IMAGES .
$categories->fields['categories_image'],
$categories->fields['categories_name'],
SUBCATEGORY_IMAGE_WIDTH, SUBCATEGORY_IMAGE_HEIGHT)
. '<br />' . $categories->fields['categories_name'] . '</a>');
This is where the html for that div is created. So you can edit it to something like:
$list_box_contents[$row][$col] = array('params' =>
'class="categoryListBoxContents"' . ' ' . 'style="width:' .
$col_width . '%;"',
'text' => '<a href="' .
zen_href_link(FILENAME_DEFAULT, $cPath_new) . '"><span
class="newclass">' . zen_image(DIR_WS_IMAGES .
$categories->fields['categories_image'],
$categories->fields['categories_name'],
SUBCATEGORY_IMAGE_WIDTH, SUBCATEGORY_IMAGE_HEIGHT)
. '</span><br />' . $categories->fields['categories_name'] .
'</a>');
Which will add a new span ( with the class new class ) around the image. then you can add a rule for this class in the style sheet. you will be able to stlye the image and text separately. If you want to put in a background you may want to use display:block to control the size of the container.
Now the page html will look something like:
<div class="categoryListBoxContents" style="width:100%;">
<a href="http://www.nickcollie.co.uk/catalog/index.php?main_page=index&cPath=1&zenid=e6ivvs15ede6hl5h7oknhfnta6">
<span class="newclass">
<img src="images/categories/category_hardware.gif" alt="Hardware" title=" Hardware " width="81" height="57" />
</span>
<br />Hardware</a>
</div>