Within Magento CE you are able to display certain checkout functionality based on the location of the customer. For example, you’re might want to offer flat rate shipping only to customers in your country. To do this you just select the desired country from the Ship to Specific Countries for that particular shipping method.
You can then test this by choosing to ship to another country and making sure that the flat rate shipping option is not available in the checkout.
You are also able to do something similar with payment methods. I was recently testing that Paypal Pro was only available to customers within the EU. However, I found that Paypal was available to customers shipping anywhere in the world.
The answer was actually pretty obvious really. Paypal looks not at the chosen shipping country but rather the customer’s residential country. I’d been testing using a UK customer and Paypal was available no matter what shipping country I selected in the checkout. Testing with a non-EU customer and I got the desired behaviour – Paypal was not available as a payment method, even if I was trying to ship to the UK.
So, the Paypal Pro payment method at least tests on the customer’s country of origin rather than destination in determining whether the payment method should be available.