Personally I think the best method to take with this is just to add a zipcode input field on the product details page and view cart or checkout. I know there is a section of code in cart.php that passes the default information specified in the admin to the shipping routines to calculate a shipping cost before login/register.
anyhow, hth.