In the shopping_cart class there is a function that you can test, based on the products table, how many items are in the cart:
Code:
/**
* Method to calculate the number of items in a cart based on an abitrary property
*
* $check_what is the fieldname example: 'products_is_free'
* $check_value is the value being tested for - default is 1
* Syntax: $_SESSION['cart']->in_cart_check('product_is_free','1');
*
* @param string product field to check
* @param mixed value to check for
* @return integer number of items matching restraint
*/
function in_cart_check($check_what, $check_value='1') {
You could use this to test if 1 or more are in the cart ... then in your shipping module, you could add the extra charge if there is 1 or more ...