To me, consistency is key. If your application has to work alongside other code (e.g. in VB) that already uses this nomenclature, then follow suit. If you are working with a legacy application that didn’t use it, don’t introduce it. Figure out what the Romans were doing and keep doing it.
These notations can unintentionally be misleading when used with a “typeless” language, such as Perl is and such that VB often is. You can legitimately find that your szFoo variable contains an integer, or that the value it contains has magically transmogrified itself into one. Thus, the social-contract that has been implied by the naming can’t be upheld by the technology, which might produce confusion. Nevertheless, human beings will still benefit from consistency in naming, whatever that consistency is.