I would make two copies of the flat rate module: one for small packages, one for large packages and one for International.
Module for small packages: Add code in the constructor function of the module to read through the products in the order. If any of them have a weight higher than what is considered small, set the status of the module to false. Set the shipping zone to the US. You may need to add a zone that only has the lower 48 states, unless shipping to Alaska and Hawaii are not a problem.
Module for large packages: Do the same as the above but check to make sure all weights are for small items.
Module for International: Set the zone to International. You may need to make a special zone if Alaska and Hawaii are to be included.
When an order in the US is places, either the first or second module will appear. If the order is outside of the US, the third module will show.