Народ, как уже тут было сказано, грамотно было бы при отрицательном балансе, всех слать в серую сеть вида 10.хх.хх.хх/19 например. Из этой сети можно только зайти на главную страницу компании. Вверху где-нибудь прикрутить вставку окна, типа у вас "отрицательный баланс, пополните счет или идите в ..."

либо, выдавать всем серую сеть 10.хх и при входе на главную страницу компании, редиректить в личный кабинет.
Все делается в принципе:
1. Запросом в базу выдергиваем состояние баланса и логин с ипом текущим.
2. Генериться это все дело на каком-нибудь языке (bash/perl). Проверяется логин, ип, баланс.
3. Складывается на dhcp-сервер. По крону обновляем все это дело + у кого acl-ки на коммутаторы стряпаются, делается динамический acl.
Как-то так...
У себя пробовал реализовать. Не допер кое какие функции. Потом напрочь отпала необходимость в этом. Сейчас простой запрос в базу и на главной странице вывод данных ип + логин + баланс.