It depends on the provider that is used.
If they use Trust Payments (Secure Trading) / CyberSource they can use multiple currencies in the same database as the gateway allows us to specify the currency as part of the API request.
For authorize.net/eway/Moneris it is not possible as the gateway accounts are created in a specific currency that cannot be overwritten in the API.
Customers need to have a specific currency set. You cannot use the "Multi-currency" customer.