Here is how I worked-around this. First I uninstalled all virtualbox packages -- virtualbox-ose, virtualbox-ose-source, virtualbox-ose-qt, and virtualbox-guest-additions, then I uninstalled dkms. Then I changed my /etc/apt/sources.list to point to jaunty again instead of karmic. Then I ran sudo apt-get update. Then I rebooted into the jaunty Kernel (linux-image-2.6.28-15-generic) (which happened to still be installed). Then I installed virtualbox, dkms, and linux 2.6.28 source from Jaunty. Then I ran virtualbox and it said that the config files were of a new version that it didn't know how to read. It gave the location of the config files, so I ls'ed the directory and found that virtualbox 3.0 had made a backup copy of the old config files when ugprading the config files so I cp'ed the old config files back into place. Now virtualbox 2 (from Jaunty) was able to run and resume my guest. I shutdown the guest and made a snapshot and quit.
Then I uninstalled all virtualbox packages and dkms, changed my /etc/apt/sources.list to point to karmic again, ran sudo apt-get update again, then rebooted into the karmic kernel (which is now linux-image-2.6.31-12-generic although it was linux-image-2.6.31-2-generic when I started this). Then I installed virtualbox, dkms, and the linux source from karmic. Now I can boot my guest and it works! Successful workaround.