My personal feeling on this is that it depends on the nature of the user's experience. You mentioned this is to access a quote - is on of the goals to make the user feel that getting a quote is quick and easy? If so, I would say generate a quote number and send them an email with a link drectly to the quote to access it (as well as giving them the ability to copy+paste if their email program eats the link.)
Ultimately, I think it doesn't much matter one way or another from a tech perspecive, but the user will feel more of a sense of obligation and commitment if they are asked to "create an account", which is what they would be doing if you ask them to set up a password.
The perception is different, even though the steps aren't that different themselves.
If I go to your site (say it's a car insurance site, those notoriously ask for a LOT of information before they'll gve you a quote). If I can plug in my general info (age, location, etc) and just click submit, and then be emailed a way to access my quote, that feels less intrusive to me, and less like your company is going to call me and hound me later to follow up the sale. There is les of a sense of permanence and commitment, which may be an important selling point to your customers.
If you DO end up going the reference number route, be sure to be kind to those who actually do decide to go ahead and purchase by making their signup as easy as possible. From their reference number, you can obtain their email address from the database, so pre-populate that for them, and remember the information they've already given you.