Hi Sal,
There's a few different ways to extend registration.
One low tech way is used by ecommerce, where registration is followed by a redirect to checkout.
There's also a way where you can create a user using the API directly.
I'm sure Dave will explain how to approach extending the registration page directly --I haven't done that, so can't help there.
ad_form is used for building dynamic forms. If you're like me and find that too abstract, having too many limitations, or requiring a high learning curve to be of value, then there's an alternate method which will soon be available that uses a tcl styled API to build forms. The learning curve for this new way is low, because it depends on knowing html forms and tcl, not much else. I am debugging/alpha testing it now and will post when it reaches beta.
cheers,
Torben