I used to use BitMeter II many years ago when capped was still outrageously expensive. It can't set hard-qouta's that would cut off access, but it does allow soft qouta's. Something like NetWorx does support disconnecting when you exceed the qouta. Both tools offer great reporting on bandwidth usage.
The only method I know for creating hard quotas on a per user basis involves using an intermediary proxy such as Squid, however that its a bit heavy duty (and useless if you run only Windows). Hopefully someone has a better suggestion for that :)