very few people do. And, the support isn't as good as in systems designed for this (Tk, wxWindows, Swing, etc). For example, you don't have good layout managers in VB6.
That's one reason why it's good to learn different languages. After learning Python & Tkinter (plus a little wxPython), when I have to program in VB.nyet (like it looks like I'll be doing soon for a project), I will be be programming differently than I would have a couple of years ago.
Tk has pretty decent layout managers; I can get the layout I want without too much effort. wxWindows seems a little more primitive (but does have a lot of other advantages over Tk). I haven't used Java's Swing. For VB.nyet, I'll probably write my own; MSDN actually has an article on doing it.
Another technique I'll probably use is using a scripting language for flexibility. You can still do this in .nyet (or use class loader), but MS doesn't emphasize it and so most people never think about it....unless you have a scripting background.
Tony