I believe you are looking for the "Ubercart event registration" technique and the Node Checkout module. Mainly because this technique is associated with "event ticketing" most people do not realize the general nature of what the Node Checkout module provides:
Node Checkout causes a "node creation form" to be presented to a user after adding an item to their cart. The idea being that someone is purchasing an event ticket, so they are presented with a form for capturing their name, address and other info so their identity can be verified at the event's ticket booth.
HOWEVER, this technique provides a few interesting things for developers:
1) these don't have to be event products, the "purchase" can be for anything
2) the information collected is entirely up to you, because you create a new content type for capturing this information, you can put text fields, checkboxes or whatever FAPI or CCK widgets you want on that form
3) due to the nature of how this technique works, you can trigger one or two "purchased item forms": the first one is automatically triggered by the Node Checkout module after the use clicks "add to cart", but part of this technique includes use of a Conditional Action to support identification of abandoned purchases where the "new purchase form" was filled out, but checkout never happened. You can use this Conditional Action moment to trigger a 2nd (or maybe in your case only) node form for collecting this information AFTER their purchase transaction completes.
I think if you only want a form to appear to the customer after the purchase transaction, you may not even need Node Checkout - you can do it all with a custom content type for your information collection, and use Conditional Actions to trigger the display of that form after purchase.
You'll have to do some mental translating to understand this technique, because the best tutorial explaining the technique is purely about event ticketing. But if you have a little imagination, you'll realize how generally useful asking the customers for information after a purchase can be.
Here's the best tutorial I've been able to find on this, step by step too: