User 1 is an account administrator and can create (invite) other users on the account. User 1 inputs an email address for User 2. User 2 receives a welcome email at that address with a link to confirm. Clicking that link, User 2 is taken to the site to create a password and log in.
Security is extremely important here, so there's major concern around what should happen if User 1 put in the wrong email address for User 2 and devious User 3 gets the email instead. User 3 would be able to create an account and wreak havoc.
One solution I'm considering is that the user who receives the welcome email will need to verify some other bit of information that we've also collected from User 1 on their behalf (e.g. User 2 will need to supply first & last name or phone number after clicking the link in the welcome email). I like that approach but I'm nervous the data may not match exactly and legitimate User 2 will hit unnecessary friction. For example, what if User 1 misspelled their name or put in a company phone number instead of their direct line? As far as I'm aware, User 1 and 2 will have some existing relationship so User 1 should be able to communicate any special sign up criteria to User 2.
This does seem a little edge-casey and reminds me of http://xkcd.com/970/, like we're building a lot of validation around something that will probably be filled out correctly 99% of the time. But we've chosen to use account admins instead of letting each user sign up individually because there are hundreds of accounts in the system and new users need to be associated with at least one account to do anything.
Does anyone know another service where you need to be invited and validate some information before you're allowed entry?