WordPressMu network with private sites

By deafault, any sub-site is open to public. You would need to add code to check if a user is logged in. And if user is logged in, does he have the right priviliges?

What I would do, is to create one new role for each sub-site. Then when a new user registers, I would manually add the right sub-site role to the user, thus giving him access to the site.

You can use the members plugin for managing roles: http://wordpress.org/extend/plugins/members/