The whole "bad habits" is rather silly. People will develop new habits when they move to a new programming language. I don't believe habits carry over between languages except in the case where a user tries to replicate the behavior of one language in another instead of taking advantage of said languages native abilities.
They do develop, but in a different sense. "Habits" doesn't necessarily summarize the property quite as well as other explanations. If someone gets used to Visual Basic and they try a new language, they'll probably find it quite a bit harder to begin with. While it's obvious that learning other languages takes more time (Visual Basic is the "bottom" of the totem pole it terms of learning complications), it's also important to realize that some people are just fine sticking with Visual Basic. They'll form biased opinions saying "Visual Basic is so much easier!" Obviously, it is to begin with. As you learn a new language, difficult details turn into the intuitively obvious. Syntax complications become second nature.
Until a few years ago, when I was presented with the fact there was a more efficient (but initially more complicated) way to solve a given problem, I would be only slightly interested. I'd look at it, and then be scared away from the initial confusion it caused me. A few years ago (especially this year -- if you haven't guessed, I'm talking about Math), I started to realize that if I gave the given solution more of my attention, I would be able to understand it (this holds true for every problem I've been confronted with in which I hold sufficient knowledge to solve in the first place). I may have to practice it for a while, but after it's all said and done, I will appreciate the efficiency provided by the new found algorithm.
They're not even bad habits, necessarily; just things that have been done for you. If you moved on to other languages, it wouldn't be breaking a habit by learning how to do that previous operation (that the compiler originally did for you), would it?
See the above.
When you're prested with a problem that requires the parsing of a string, you might think to utilize Visual Basic's Split() function. If you're using C to solve the same problem, you're obviously not going to be using a pre-coded function to split/iterate through the string. If a new-comer to the C language is presented with this problem, they might logically conclude that it would be much easier for them to solve the problem using Visual Basic instead of C. Initially, they'd rather not learn a new solution to the problem.