There are a few packages out there designed to be used ISP.
http://freshmeat.net/projects/ispconfig/
http://freshmeat.net/projects/42goisp/
There are others. Found these searching google. There is another one but it eludes me at the moment. Also check out webmin.
http://www.webmin.com. It has some thrid party plugins to interface with things like ISP control. Also allows quota control in a gui type web interface. Webmin can do a lot for configuring many of the services.
Also when partitioning the machine I recommend creating one just for /home and one for say /var/spool/mail. Then you can use quota control on users that are added depending software you use. Limit standard users to have say 20meg of drive space for webpages which will be in their home directory. As for mail limit there usage as well.
I have done an ISP type setup on linux but years ago. Basically before gui. Mostly in the command line using scripts. Used simply radius but forget which one I used then. I think it was something like radius from livingston or similiar. Very simply. Give certain user a static IP if needed. Control their usage and times allowed on. Mostly parental control there.
Brian
Brian