I need some input on the best way to accomplish setting up user accounts for students.

Currently, I have 7 OU's (schools). All students at the schools login using a generic student user account. In the next month or so, I'm going to do away with the generic student user accounts and make all students have their own user account. The smallest OU will have about 250 users while the largest will have about 800 users. We are using NetWare 6.5 sp7.

This is what I need to accomplish:

(1) all students will have their own account & home directory. Username will be their ID number.
(2) all accounts will have a minimum password length.
(3) I would like for a school level teacher to have easy access to reset forgotten passwords.
(4) I would like to assign a password on account creation that must be changed by the student on their first login.
(5) Finally, if possible, I would like to be able to automate the account creation so it can run against our Student Info System nightly to create accounts for newly enrolled students.

What are your suggestions to help accomplish the above?