There are some definite advantages to a virtual keyboard. One is that you can choose among customized versions. In terms of customizations, there are some interesting features you can get. I have had TouchPal for a while, and I like it pretty well. Being able to up-swipe to get a capital, and down-swipe to get a symbol is very nice. Also, I think in many ways soft buttons are more forgiving of big fingers. And if that isn't good enough, you can use TouchPal's hybrid, compact Qwerty, 2 letters per key keyboard, with very good word prediction--those buttons are almost huge! And, if you don't want prediction, at any point, you still have the option of left and right-swiping. Did I mention that you can slide back and forth, to exchange the compact Qwerty for full Qwerty, on the fly?
One big problem with virtual keyboards, though, is that the keyboard frequently covers up the fields in a form. There has got to be a way around this. One idea would be to give the keyboard some transparency. Another would be auto-scrolling through the fields.
It seems like with Android 1.6, my other big, fixable virtual keyboard gripe has largely been fixed: the keyboard is much more likely to auto-launch in many obvious contexts: compose a Gmail, compose an SMS (ChompSMS), launch a Market Search. That all points out the core benefit of a real mobile platform--it gets better.
The one thing I don't understand is why Google, device makers and carriers don't ensure that the high-quality basics (TouchPal, ChompSMS, Quickdial) aren't pre-installed with the phone. Would greatly improve the mean user experience.