I had a similar problem and used this method to hide certain attributes on specific pages:
Open /app/design/frontend/base/default/template/catalog/layer/view.phtml
Find:
<dt><?php echo $this->__($_filter->getName()) ?></dt>
<dd><?php echo $_filter->getHtml() ?></dd>
Replace with:
<?php $tmpTitle = $this->htmlEscape($this->__($_filter->getName()));
$tmpTitle = strtolower($tmpTitle);
$tmpTitle = preg_replace("/[\s]+/", "-", $tmpTitle);
$tmpTitle = str_replace("/", "-", $tmpTitle);
?>
<span class="<?=$tmpTitle?>">
<dt><?php echo $this->__($_filter->getName()) ?></dt>
<dd><?php echo $_filter->getHtml() ?></dd>
</span>
The first part takes the “title” of the attributes (set in the Manage Attributes section in the backend) and changes the “title” to lower case and places “-” in place of spaces (in case your attribute name is more than 1 word).
The second part then injects the $tmpTitle variable as a “class” tag for use with some CSS magic!
Add To you Category Description:
<style type="text/css">
.block-layered-nav .your-attribute-label { display: none; }
</style>
Hope this helps.