You would probably have to use both Calculation columns and rules in order to accomplish this.
Do you have a grid of shipping to be charged in every case? If I could look at that I might be able to help you with the formulas you would need.
How many zones do you have? Make sure to include the session variable names and what they will contain for the various zones and types and I can probably help you write the necessary formulas.