Hi Clive
Another alternative is to use Audience based visibility so course are only visible to the specified audience.
An audience rule could be created that only included users that have passed a course and another course could have audience based visibility based on being a member of this audience.
An audience could also be created for departments so courses are only visible to the department.
This might be time consuming to setup depending on how many hidden course you need.
Regards