Я бы реализовал hook_nodeapi()
в пользовательском модуле, а на $op == 'view'
проверил бы для правильного типа узла и роли пользователя. В зависимости от роли я бы удалил соответствующую запись поля из массива $ node-> content.
Обратите внимание, что пользовательский модуль должен быть вызван после CCK, чтобы это работало, иначе поля CCK еще не доступны в массиве `$ node-> content '. Поэтому, в зависимости от его имени, может потребоваться изменить вес пользовательских модулей на значение выше, чем у CCK.
Если ту же логику нужно применять и к формам редактирования узла, то можно сделать то же самое для $op == 'prepare'
.