Our secure checkout page for card-based direct payments does allow entering different Shipping and Billing addresses, but the Shipping country, state and ZIP/postal code are locked-in and taken from whatever country and ZIP/postal code the buyer entered in their cart to calculate shipping before checkout. The checkout page cannot recalculate shipping if they change their shipping address, so we don't allow them to change those fields during checkout. If they enter a different Billing address and attempt to apply that as the Shipping address, they would see an alert saying, "Shipping destination selected does not match the destination entered in the cart. Please go back and update the cart." Buyers should always enter their desired shipping-destination country and ZIP/postal code in the cart before checkout, so we can calculate their shipping charges accurately.
Whenever tangible items (those with Shipping/Buyer's Address enabled) are added to the buyer's cart, the cart will request "Ship to Country" and "ZIP/Postal Code", so it should be apparent to most buyers both of those are meant to request their desired shipping destination. You may wish to use cart customization code to change those labels and/or add some explanatory text in the cart -- e.g., by adding the following lines to your View Cart code just before the "// -->" line:
function EJEJC_config() {
EJEJC_POSTCALL=true;
}
function EJEJC_shown() {
jQuery("#state1").attr("innerHTML", "Ship to ZIP Code");
jQuery("#tdPmnt").attr("innerHTML",
"Be sure to specify your <b>Shipping Destination</b> country and ZIP code above");
}
EDIT - added missing line:
function EJEJC_shown() {