Create a Password for a User

Create a Password for a User

I am working on setting up a Customer Portal that does not require that the customer to setup an account before submitting a request (only requires their email).  Is there a way to allow the agents to setup an account based on the request and notify the customer so that the customer can login to view the status of their request?  

If not - what is the process for having a user create an account to view status after they have submitted a request?

It seems like either allowing agents to create a password for the user or allowing users who submitted a request with just an email address to create a password easily to check the status of a request would be important.  Thanks.