If you can control this based on the master_catgegories_id for the Products then you could customize the USPS shipping module in:
/includes/modules/shipping/usps.php
and add the code in RED:
Code:
// *** Customizations once per display ***
// bof: skip for cat 10 or 15 if First-Class Mail Large Envelope or First-Class MailRM International Large Envelope**
$chk_cats = 0;
$chk_cats += $_SESSION['cart']->in_cart_check('master_categories_id','10');
$chk_cats += $_SESSION['cart']->in_cart_check('master_categories_id','15');
// eof: skip for cat 10 or 15 if First-Class Mail Large Envelope or First-Class MailRM International Large Envelope**
for ($i=0; $i<$PackageSize; $i++) {
Code:
// bof: skip for cat 10 or 15 if First-Class Mail Large Envelope or First-Class MailRM International Large Envelope**
//echo 'USPS $type_rebuilt: ' . $type_rebuilt . ' $chk_cats: ' . $chk_cats . (preg_match('#Large Envelope#i',$type_rebuilt) ? ' MATCH' : ' NO MATCH') . '<br>';
if (preg_match('#Large Envelope#i',$type_rebuilt) && $chk_cats > 0) {
continue;
}
// eof: skip for cat 10 or 15 if First-Class Mail Large Envelope or First-Class MailRM International Large Envelope**
$methods[] = array('id' => $type_rebuilt,
'title' => $title,
'cost' => $cost,
);
where the Categories that have the Products to test for are 10 and 15 ... just change those values to match your categories ...