Generally speaking, the solution comes down to process. It is not really that logical to create a quote for someone who doesn't exist. If you lead the user through the process, even for existing customers, it will be easier for them.
1. find the customer record. If they do not exist, create a new record.
2. create a quote for the customer
The second process will be a script in which the customer ID is used as data in the new quote record.
Does that make sense?
Thanks that makes perfect sence.