Are you committed to using NLTK/Python? I ran into the same problems as you, and had much better results using Stanford’s named-entity recognizer: http://nlp.stanford.edu/software/CRF-NER.shtml. The process for training the classifier using your own data is very well-documented in the FAQ.
If you really need to use NLTK, I’d hit up the mailing list for some advice from other users: http://groups.google.com/group/nltk-users.
Hope this helps!