To be honest, we thought all the Shipping Estimator code was SO immensely convoluted just to end up being crap anyways.
So I opted to just remove it and make our own from scratch....and it's so much more awesome. I mean pretty much the way the built in one works is creating a fake way of doing it with a real address. Our way instead just creates a temporary address...the only thing the customer has to enter is their Zip Code, the state and city are found via a ZipCodeDatabase we have. We then inject our temporary address instance down through the functions via overloads and it returns a dropdown of ALL available options.
We call it the Shipping Exactimator, since it is the actual cost, not an estimator at all.
You can check it out at FreshWaterSystems.com
8.0.1.1 ML C# - Production
9.0.1.2 ML C# - Development