The override on the Free Shipping that you are using is controlled via the Order Total Module ... Shipping ...
There are other methods to have Free Shipping such as:
0 weight when 0 weight means Free Shipping
Product is marked Always Free Shipping
Product is Virtual
For this, there is the function added to the shipping module to control:
PHP Code:
$this->enabled = ((MODULE_SHIPPING_ROYALMAIL_STATUS == 'True') ? true : false);
So to get technical, in your case that line should read:
PHP Code:
// disable only when entire cart is free shipping
if (zen_get_shipping_enabled($this->code)) {
$this->enabled = ((MODULE_SHIPPING_ROYALMAIL_STATUS == 'True') ? true : false);
}
This would turn off the Royal Mail when a Product is marked as Always Free Shipping or a zillion other reasons ... and you would have installed the Shipping Modules Free Shipping freeshipper
That would only show when the shipping is Free and the other shipping modules should be turned off ...
Next, you have an additional condition or criteria for when to offer Royal Mail ...
This is where you can make your own function to work in a similar manner ...