Thanks Tim, I had already tried, but now I hope to have found the "recipe" to achieve this. It is fairly complex.
Here we go Moodle 2.2.3+ (Build: 20120612)
1.- Site administration ► Courses ► Course request, Check Enable course requests.
2.- Site administration ► Users ► Permissions ► Define roles : Manage roles : Edit Authenticated user and set Request new courses to Prevent. [Depending on your choice of User policies, you may have to also set other roles such as Authenticated user on frontpage to Request new courses Prevent.] If all your User policies roles have been left to their Moodle default values, you don't have to Edit any other role.
3.- Create new role "Staff member" :
Role archetype None
Context types where this role may be assigned:
System
Block
capability : System : Request new courses Allow
4.- Site administration ► Users ► Permissions ► Assign system roles
Assign roles in System Staff member
Select users to be assigned the Staff Member role from the Potential users list. Those would be your institution's "teachers".
Now, this will work fine for those users who already have a Teacher role in at least ONE course. When they log in, they will see the list of course(s) that they are enrolled in as Teacher(s) plus an All courses button. Clicking on that All courses button will show the complete list of courses on the site, plus a Request a course button, which is OK.
However, those Moodle site users whom we have assigned to the Staff member role in System will not see that All courses button, since by default all the available courses will be displayed. And consequently, the Request a course button will not appear to them. To solve this, a further step is required, viz. creating an HTML block on the front page with a direct link to /course/request.php! And of course that block will have to be made invisible to students etc.
5.- On the front page, Add a block: HTML: title: Course request contents: Click here to request a course with a link to <yourmoodlesite>/course/request.php
Edit that block's settings: Permissions: View block: Staff Member, Teacher (only). So that only users with Staff Member or Teacher role will be able to view that block; students won't see it.
Now Staff Members who are not yet enroled as Teachers in Courses will be able to see that HTML block, click on the link and request a course. Of course, this block is redundant for those Staff Members who are also Teachers, but tant pis.
Et voila!
Joseph