Уже над этим думали и даже были варианты.
Например - список пользователей можно легко загрузить из файла, если он (список) имеет ту же структуру что и в скрипте. Чуть похуже, но тоже реализуем парсер файла конфигурации.Вариант с несколькими аплинками тоже прорабатывается, на самом деле ничего сложного в нем нет. Действительно, если рассматривать IMQ проблема снимается на корню, как и шейпирование локального трафика сервера. Но IMQ не у всех есть, а скрипт должен быть, по возможности, универсальным.
Но даже если IMQ нет - ничего страшного. Мы же используем на DEV_IN раздельные классы для интернет и локального трафика? Ну, будем использовать не 2, а три или четыре раздельных класса, что не заимствуют друг у друга скорость. А клиентов отправлять по классам через маркировку в IPTABLES, и кстати, такая же маркировка позволит нам легко выполнять маршрутизацию пакетов по интерфейсам.
Но разумеется, скрипт придется переписать, чем мы и занимаемся в настоящее время.