So, drupal + ubercart is quite a powerful, simple e-commerce solution. Buzz Hockey (www.buzzhockey.com) a hockey training company in Minneapolis is a good example of how you can use drupal and ubercart for event registrations.
It’s not much different then adding a product, you do need to add the node checkout module to ubercart though. This allows another content type to be associated with the order.
So the process, in a nutshell, add a content type called “Registration Profile” or something suitable to your needs. In that content type, add all of the registration information you need as form fields. (IE, name, phone number, emergency contact, etc.). In node checkout, tie that content type to all products that require it. Set permissions so anyone can create a node of that type, place a hook on checkout to put the order number in the new content type, and you have a working system.
There’s still the need to create views to view both content types tied to each other, but that’s just for reporting.
I’ll try to get a more detailed write up on how I implemented it in the future, but a lot of what I did was from what I learned on this page: http://drupaleasy.com/blogs/ultimike/2009/03/event-registration-ubercart so thanks to ultimike for writing that up.