If the order's actual total, i.e. including shipping, can't be determined automatically, I'd suggest using one of the payment methods that allows you to authorize the funds and then capture then once you know that shipping cost -- like authorizenet_aim.