А в чем великий смысл хранить всех в одной таблице? Тем более, что наверняка для этих категорий контактов у Вас будут разные workflow и, соответственно, разный состав related modules. Далее... "Все контакты" - это "Конкуренты" плюс "Подрядчики" или плюс "Еще какие-то контакты"?
А так вообще делаем кастомные экшены (например, action_competitors и action_subcontractors, которые будут доступны по index.php?module=Contacts&action=competitors или index.php?module=Contacts&action=subcontractors) в контроллере модуля Contacts и в каждом из созданных экшенов уже делаете $this->view = "<ваша отдельная вьюха для каждой категории контактов>"