I recently inherited the task of migrating a drupal site's user information from usernode to CiviCRM contact records. It's been a difficult task given the version of CiviCRM -- it was a 1.7 alpha release that had to be updated to CiviCRM 2.0x, which in and of itself was no small task.
Once that part was complete I had to collect all of the usernode objects and move them into a number of custom fields, which meant that I spent a lot of time sifting through the documentation and the source code.
Here's the kicker... CiviCRM almost supports this sort of thing out of the box. It would appear that one must simply translate any desired node objects into a csv file, and then use CiviCRM's import tool to map the columns to your custom fields. It appears that all of the CiviCRM components also support this.
The Greatest Man That Ever Lived (Variations on a Shaker Hymn)
The Weight