How you would implement this depends on how your shipping rule is setup. The norm is that there is a particular session variable that will be set and this is what the shipping charge is triggered on. If you unset this value then this would zero out the shipping, getting it back though would require you to either set the value back to what it was or run the code that generates the value again. So it all depends on how your shipping is currently setup. Please post back with some more details about your charge rule for the shipping and we can give you some pointers on how to get this going.