Avoiding insane AT&T iphone roaming charges in Canada and other countries

I use about 400 MB per month of data on my iphone when I'm in the US. AT&T charges $15/MB for international roaming in Canada. That's $6000 per month. Totally insane.

AT&T has an "international roaming" plan that lets you prepay for data. It's $25 for 20MB. There are larger packages, pricing is about proportional. However, it's not that simple. The data is credited and billed on a per day basis, prorated to the month. So you get about 600kb per day of having the plan active. Moreover, the billing cycle is the same as your normal phone billing cycle. So if you activate the plan 1 day before the end of your billing cycle, and then use 20MB of data, you will be billed for 19.4MB of overages - almost $100! The good news is that if you ask nicely, you can get the plan activated retroactively as of any day you like.

Another quirk was that although the rep told me the plan would be activated within 5 minutes, it wasn't. The reason was that I had my phone for less than 90 days. So they had to connect me, I kid you not, to the "under 90 day dept", asked me a bunch of useless security questions that were semi public information anyway (bank that issued my credit card, cities I've worked in), and then activated the package retroactively.

Anyway, here is the HOW TO:

(1) Estimate how much data you will need until the end of your billing cycle. I use about 1.5MB per day when being really careful. The "Usage" in the Settings menu of your iphone is a good way to track this.
(2) Pick a plan (20MB, 50 MB, ...) that gives you enough data per day.
(3) Calculate to which day the plan needs to be backdated so that you don't go over. It's not the end of the world if you go over the package - $5/MB, still better than 15.
(4) Call AT&T, 1-800-331-0500, 0, 0, then ask for the international department, then get the plan activated.

Theoretically, if you have the guts, you could wait until the last day of your billing cycle, and then you will know exactly what day to backdate it to. But again, at $15/MB, this is a bit risky.

I talked to Jaime, JS977S, he was very helpful and said that the backdating is something AT&T will generally do.