I use a Sprint calling card... it will let you dial US 800 #'s. Since the call to the 800 number is technically placed in the US, you will have less of a chance of getting a blocked or unreachable 800 # due to geography reasons.
I still get charged the standard Sprint card rate for calling the US.
BTW: Unrelated, but related... Alot of +800 (international country code 800 numbers are starting to work with the US phone system now)