Joel, of Joel on software wrote an interesting blog (Making Wrong Code Look Wrong) last week that I just found time to read. I would largely agree with him. Really quick summary: he argues for variable prefixes to prevent accidentally doing the wrong thing with variables that are the correct 'type' (example: string), but not the correct 'kind' (example: trusted string vs. untrusted string).
I would largely agree with Joel. However, I would like to make one critique – where possible, I would prefer 'types' over 'kinds'. Joel starts out with an example of using 'kinds' to prevent cross site scripting (XSS) attacks. It sounds like a good programming practice, but I think it would be even better to create two classes: 'UserString' and 'ResponseString'.
What I like about classes:
Anyway, that is my two cents.