I'm in the process of doing some software to manage RADIUS users. We use it on our WISP currently.
Part of this software will be a script that runs each night. it calculates the bandwidth being used by each person. If it's over a CAP, then I reduce their speeds until they pay again. We run a pre-paid wireless type network. You pay for bandwidth, and when you run out, you get modem speed (so you can pay again).
We are switching from Captive Portal to PPPoE currently. I'm sad to see that this isn't possible with PPPoE. Out of the 150 users we have, there are 5 or 6 that use 90% of the bandwidth while the rest are stuck being shaped down to nothing.
Hopefully when I push this software out, the PPPoE will support this feature. Otherwise anyone using this software will have to use Captive Portal (and CP sucks).