How about, to compliment the Mac OS X dictionary, project specific dictionaries? These would be used when you want to ‘disregard’ from the spell checker often used words that occur in a specific project but that weren’t in the main dictionary (like names). Then, in that project if you do spell any ‘disregarded’ words wrong you can see them as all the other instances won’t have a red dotted underline. Outside of that project the word will be flagged regardless.
That whole system is controlled by OS X, I bet. There might even be utilities out there for doing something like that, though at the system level. The words you add to the dictionary are just kept in a text file (though don’t edit it with TextEdit as there are invisible characters separating words, that it does not show), in ~/Library/Spelling. You could even maintain a master set, and project sets by swapping files in and out of there. Probably wouldn’t work too well if you do a lot of concurrent work, though.