This is done on many sites. The main purpose is to validate the email address, so that if user provided a fake address, he will never receive activation code and will never be able to use the site. It also confirms the intent, so that someone else could not signup your email address for an account, thus preventing you from receiving emails from the website for which you have not intentionally signed up.
this is a pretty standard 'opt-in' signup practice.
Another way to do this without the use of activation link is to auto-create a temporary password and email it to user. The user will not be able to login unless he provided the correct email address. In this case you should also require user to login at least once before you consider his account fully activated.
thanks, as im new to PHP I was hoping there would be some form of guide to this type of activation in the sitepoint "Build your own database driven website", however after reading it, it seems that it is out of scope, maybe too advanced to start out.
I imagine you can make it as complex or a simple as you wish depending on your coding skills. For now i'll trawl around on the basics of just user login etc and build the activation feature in at a later date with more understanding.