Which is the best?
Here's a nice article with some eye-tracking data that suggests it's best to Avoid Multi-Column Forms.
I haven't been able to find any explicit advice on this from Luke Wroblewski, but the findings above seem consistent with his guidelines to illuminate a clear path to completion.
The single-column approach also gives you a lot of room for providing inline help and error messages, while the two-column layout forces you to solve this in other ways, which are usually not as elegant.
I like the single column approach much better. However there is an additional thing to add here as well.
Gamify the entire process. Turn it into a multiple page flow with progress indicators. It makes your page less bulky and cleaner, letting the user concentrate more on the process at hand. Doing this you will also avoid the dreaded "F Shaped Reading Pattern" drop off in the fields that are not required but really great for the business to have to do analytics on.