We just completed a project where a client wanted to upgrade to GP 2010, but they were using a GP Dexterity customization that was written many years ago by a VAR which had gone out of business. Unfortunately, this client did not have a copy of the customization's source code, which meant we had to re-create the customization from scratch. Well... partly.
Using Dexterity Utilities, we were able to merge all of the physical components (fields, tables, forms, reports) from their GP 8.0 installed custom dictionary into a new GP 2010 development environment. Everything was preserved, except for the sanscript code. But, at least a lot of table/field setup and windows layout work was prevented.
Once the old GP 8.0 components were in our GP 2010 development dictionary, we were able to use Dexterity to add the sanscript code back into the dictionary. We did have a few clues. For one, the placeholder "(missing)" was in every place were code used to be. So, we just had to fill in the blank. But for table activities, we did have to do some good old-fashioned reverse-engineering to figure out witch tables were updated when, and with what values.
All told, it was a challenging project, but we still got it done in what I would image was less time than the original development effort, and we were able to keep the solution 100% compatible with historical data.
So here's the moral of the story... if you need to customize GP, be sure that your VAR is willing to share the source code with you in advance. And when the development is done, but sure you ask for a copy of the source code. This will come either in the form of a "Development Dictionary" (which zips down to about 20MB) or an "Extract Dictionary" (which zips down to usually about 1MB). Either of these could be used by another GP developer to salvage your investment.