Personally I've always hated prefixing variable names with the variable type (strName, iID, lValue etc).
This type of naming can cause more trouble than anything - a fairly frequent occurence is the variable type changes but nobody has the urge to go and rename every instance of the variable in case they screw something else up, the number of times I've seen variables (especially in VB6) like iID which is a long (not an integer), the name is misleading.
If the variable is declared so far from the point of usage that you don't know what it does then perhaps a better name / code structure may be in order, plus intellisense and a decent IDE make a lot of the reasons redundant anyway.
As to using camel case etc at first I found it a bit of a pain switching to it but now I tend to do it second nature and it makes sense, I can tell a Method from a Parameter from a local variable from a class variable at a glance - plus if you are creating a re-usable library then it makes sense to follow Microsoft's guidelines.
However I do find it useful to use a prefix for controls, I guess some old habits die hard.....
If you are serious about this kind of thing then you may find FxCop a useful tool.
also for another (humerous) opinion on hungarian style names have a look here point 29 especially. :D