The water mark is set in the method Mage_Catalog_Helper_Image::init
by these lines:
$this->setWatermark(
Mage::getStoreConfig("design/watermark/{$this->_getModel()->getDestinationSubdir()}_image")
);
$this->setWatermarkImageOpacity(
Mage::getStoreConfig("design/watermark/{$this->_getModel()->getDestinationSubdir()}_imageOpacity")
);
$this->setWatermarkPosition(
Mage::getStoreConfig("design/watermark/{$this->_getModel()->getDestinationSubdir()}_position")
);
$this->setWatermarkSize(
Mage::getStoreConfig("design/watermark/{$this->_getModel()->getDestinationSubdir()}_size")
);
You can try to rewrite this method and wrap the code above in an if statement that checks if the current user belongs to a certain group.
Something like this:
$dealerCustomerGroupIds = array(9, 10);
if (!in_array(Mage::getSingleton('customer/session')->getCustomerGroupId(), $dealerCustomerGroupIds)) {
//the code from above goes here
}
Of course this is a quick and dirty way of doing it. It would be cleaner to have a field in the system->configuration from where you can select the user groups that should not see watermarks. Then read that setting and populate the $dealerCustomerGroupIds
variable. I just added the code here as a proof of concept.