I agree. Every language has its pros and cons. VB.net has got to be one of the easiest GUI programming languages I have ever seen (JAVA probably being the 2nd), but at the same time is very limited to Windows. C and C++ have wider support between platforms and come in handy if you want to write things like drivers, use code that has a lot of assembly, or make compact programs. However, C and C++ are also tricky languages to work with.
Delphi 7 is cross platform, more forgiving than C, and IMHO superior to VB for a number of reason; cross platform-ness being the first, automatic "relative" layout (applicable to GUI only) being the second, faster execution being the third, better (included) libraries being the fourth. Well. i could go on, but I wont. Try it out, although you'll need to find a version/IDE - Borland don't want to give out Delphi 7 IDE for free and have stopped providing version 6 for free...
EDIT: Thinking about it, I'm making this comparison with VB 6.0 rather than VB.NET, maybe .NET would beat Delphi on some of those.
Otherwise, go with C unless you wanna build an app and then find out it'll only work in a Windows environment. If on the other hand, you're learning programming from the begining; go with VB. By no means do I view spending 2 yrs of my teenage life finding out just how bad VB really is as a waste of time!
If I were to consider VB.net, I'd end up using C# instead. Then again, C# isn't in the C family, except in a loose syntactic sense... but okay. Usually, you'll want to use a language with automatic memory management (i.e. garbage collection), which means you'll want to use VB, C#, Java, or some other thing that is not C or C++.