Recently we worked on a project to upgrade a website from Drupal 5 to Drupal 6. There were quite a few custom modules and we chose to take advantage of the deadwood, schema and coder modules, as described in this article . This sped up the conversion process, as the deadwood module made many changes on the original D5 code automatically and the coder module pointed us to places in the code that were incompatible with D6 and required modification.
Manual check and modification is still the most important part of this process, though these modules can often be a great help.
The following are some of the issues that we came across in the conversion process:
1) deadwood might automatically make an unwanted change
We found deadwood automatically converted a function some_prefix_access($node) in D5 to some_prefix_access($op, $node, $account) in D6. However, some_prefix was not the name of the current module and this function was not an implementation of hook_access. This automatic change was not desired.