OEMs (currently Dell and IBM) provide deployment packs that plug into the OSD feature of SCCM to help deploy operating systems to their specific hardware. These deployment packs provide some cool features - one of which is the ability to provision servers with a variety of system requirements (BIOS, Hard Disk structure, RAID, etc.). I was working an issue recently trying to get one of these toolkits installed and thought it would be worth sharing here.
During toolkit installation we would see the install rollback at the point where custom classes were being installed.
I'll save the details about how we finally found the problem. In our case, the failed install was due to the fact that the SCCM server we were installing on was one that had been upgraded from SMS 2003 a while back. These deployment packs had apparently never been tested against an upgraded SCCM server - only fresh installs of SCCM. As a result, the install looked in the SCCM registry (HKLM/Software/Microsoft/SMS/Setup/UI Installation Directory) and found the value populated so tried to use that value as a path for locating one of the files it was trying to find. For a fresh install of SCCM, this registry value is blank. For an upgrade, it has a value and that value is incorrectly handled by the deployment packs. If you run into this problem when working with the deployment packs, just delete the path listed for UI Installation Directory and the install should be fine. I've not seen any problems by just leaving this reg entry blank in SCCM but, if you run into the problem described and fix it by removing the value, it's a good idea to keep a backup of the value just in case you do see any issues later on and need to add it back.
The problem should be resolved in future releases of the deployment packs. If you haven't seen the deployment packs, take a look at the links below.