I think that this situation may be the result a common misconception by new moodle system admins. It's tempting to configure Moodle to emulate the roles that individuals have in the school. So a teacher logs in and gets the teacher role and a student the student role, right? But Moodle does not (and cannot) work that way. A Moodle 'teacher' is a user with the 'editingteacher' role within a course -- that user may be a Teacher in the school or she may in fact be a student depending upon circumstances. So once you as a user click on a course your role changes to the role which is assigned to you in that course (teacher, student or whatever). Thus there needs to be a 'neutral' role for any user account (apart from the moodle administrator) before a user enters a course. This role is called 'Authenticated User' and in 99% of all cases should be the default role in the Moodle system.
Here's what the Roles Settings documentation says:
Default role for all users
The default role for all users should normally be set to Authenticated user. If it is set to Student then the result is that all students are enrolled on all courses.
Note: The default role for all users should never be set to Guest.
Once this has been set site-wide (and the doc link above gives details of how to do this) all your student enrollment problems will go away. It's a bit mind bending at first but as you play with roles you'll find that they are marvellously flexible.
Clear as mud?