From time to time iPhoto’s face detection database gets broken and faces are not recognized on new imported photos. It can even happen that face information of old photos is lost or only partially working.
I think one of the reasons could be using iPhoto image library among several users ( there is an how-to i wrote recently: Sharing iPhoto Library among several users on a Mac). To be more precise it could have something to do with file privileges.
Well the bad news here are that there is no fix for that matter from Apple and all face data is lost. The good news: you can reset the database and make it work again.
To reset the face database you need to delete the database files of iPhoto can create a new one. To achieve that you need to launch the Terminal application (you will find it in the Utilities folder within you Applications).
Now type the following commands in the terminal application (before you continue here make as usual a backup and quit iPhoto):
sudo bash – this will give you superuser privileges after typing the admin password
cd /Users/… – change to the folder where your iPhoto library is located
rm -rf face … – delete the two database files that start with “face”
Now when you run iPhoto again your face database will be empty and you can start to add new faces. Depending on the number of photos you have in you library the first scan of all photos can take a while (10.000 photos made me wait half an hour).