I would need more details to understand how to answer this question. I guess you would have to identify those items that don't need shipping either by setting a session variable or in the cart and then set up the shipping rule to look for the identifier to determine if and when to add the charge.