I would simply charge per megabyte after some cap.
"You pay X/mo up to Y MB; after Y MB you pay Zc/MB." Set Z to be slightly more than what you pay.
I think most people understand that there's no such thing as a free lunch. Don't promise one; just promise an honest pricing scheme that lets you make reasonable amounts of money and gives your customers what they want.
There's two big problems with that: 1.) Consumers like the amount they pay to be predictable - they will pay more to avoid surprises. Your scheme sets them up for surprise bills. 2.) There is a material cost for every customer who is surprised and then calls your CSRs to complain. That cost can be more than your entire per-customer profit for one (or several) months. (This is also why cell phone companies love to move to flat rate billing where they don't have to argue about bills as much.)
"You pay X/mo up to Y MB; after Y MB you pay Zc/MB." Set Z to be slightly more than what you pay.
I think most people understand that there's no such thing as a free lunch. Don't promise one; just promise an honest pricing scheme that lets you make reasonable amounts of money and gives your customers what they want.