I realize this thread is old. But this problem also pertains to Ubuntu 10.04 (lucid) too. I did get it working successfully in 10.04. I wanted the old gdm because it allows you to enter a user name as opposed to seeing all the users outright, plus you can suspend and hibernate from the gdm screen with no users logged in. Nice for old computers with not much RAM to go around. And it's totally customizable.
The gdm-2.20 package shipped with karmic will NOT work because for some reason Ubuntu put all of the stuff that would normally be in /usr/X11R6/bin in /usr/bin instead.
See this thread for more information. http://ubuntuforums.org/showthread.php?t=1323087
The steps in the thread are 90% true but some minor adjustments are necessary. I will list here what I did in Lucid. This should work in Karmic as well. Do this to your own delight or peril.
(-1) If you are using Lucid, you will need to add a karmic universe repository your sources list. gdm-2.20 is not in the repositories anymore. It was removed when it went beta, I think. System -> Administration -> Software Sources. Click the "Other Software" tab. Click the add button. Paste the following.
karmic main universe
Then make sure to refresh the software lists before continuing.
(0) Save your work! Exit all programs. Press CTRL+ALT+F1 to get to a shell (I would strongly suggest doing this as opposed to opening up a gnome terminal.)
(1) Stop GDM. After you do this, you will not be able to get back to your graphical environment by pressing CTRL+ALT+F7 because Gnome will be shut down.
Karmic: sudo /etc/init.d/gdm stop
Lucid: sudo service gdm stop
(2) Install gdm-2.20.
sudo apt-get install gdm-2.20
This will remove gdm and gdm-guest-session, and will install gdm-2.20, libdmx1, and ubuntu-gdm-themes. You will be prompted to select gdm-2.20 as the default.
(3) Some tweaking.
sudo sed 's|X11R6/||' gdm.conf>/tmp/gdm.conf
sudo mv /tmp/gdm/conf .
(4) Try to start gdm.
If (4) doesn't work, try to reboot from the command line. If you cannot, everything should boot up properly after a hard reset. If it does work, it may complain about there being another xserver already running. If that happens see post #4 on the Ubuntu forums link above. If you follow that instruction, you will need to reboot (again). When you reboot, you should see the nice old gdm.