I have made a shell script to add a user to AC through the API. Thus a CSV list of users could be created using a while cycle.
For the second problem, we have a custom authentication provider, that handles this. We are using 3 different user databases (LDAP, AD, MySQL), and any valid login will create a new user in AC if necessary. There's a description in the developer's guide how to do it.
http://www.activecollab.com/docs/manuals/developers/authentication
Also it would be nice if everyone with email *@mycompany.com could create a account by him-/herself without admin.
http://www.darth-sonic.de