You've got the right idea. If you notice that the email you get doesn't map to an existing account, then you show a sign up form to the user where they need to enter their name and anything else that your site needs.
Or you do like I did in Zookeepr:
- all profile fields are optional in the DB (except for email)
- I immediately create a new account and log the user in when I get a new email
- whenever someone logs in and some of their profile fields are missing, they are shown a "please enter this missing info" screen before they can do anything else
There are of course lots of other ways to do the same thing.
If you have any other questions, feel free to jump on our mailing list. There are lots of people on there that could tell you how they implemented it on their site.