In the case of limited bandwidth, the "fairest" way would be to enforce a moving average cap. The most economically efficient way would be some sort of dynamic price system[1].
>But since people often have little or no choice over which carrier or ISP they use and switching can be expensive
In the context of this thread (wireless carriers), isn't this moot? I get how there are local ISP monopolies for residential internet, but the whole country has good access to all the major carriers.
[1] instead of getting 5GB, you get 5,000,000 "bandwidth credits". If a cell tower is below capacity, each megabyte of transfer only costs a nominal amount of credits (200). But as capacity approaches 100%, it costs more and more (up to 10000, or more). We could even have a total free market similar to bitcoin network fees where customers can enter a bid. If your bid isn't high enough you're limited to 2g speeds, or get no data at all.