Это легко сделать через hook_node_access. Определим в своем модуле функцию:
<?php function module_node_access($node, $op, $account) { if ($op == 'create') { // проверим - какая операция? $type = is_string($node) ? $node : $node->type; if ($type == 'your type') { // наш ли тип? $count = db_select('node', 'n') // определим, сколько материалов уже создал пользователь ->condition('n.uid', $account->uid) ->condition('n.type', $type) ->countQuery() ->execute() ->fetchField(); return $count > 0 ? NODE_ACCESS_DENY : NODE_ACCESS_ALLOW; // разрешим, или запретим создание } } } ?>