When you lose a network driver, or have a bad kernel for some reason, this will get you going.
You are starting a working system, then setting up the essentials to chroot into your broken system. The kernel, drivers and things you need are borrowed from the working system. Then you can reinstall packages, until it's working again.
First boot from a Live Ubuntu DVD/USB. Select Try without installing. Open a terminal, and follow the instructions in the Link. Your mileage may vary, I'll try an example with sda1 boot, and sda2 root filesystem.
# Mount the root filesystem to /mnt
mount /dev/sda2 /mnt
# Check /mnt for a root filesystem (bin var etc ...)
# Mount the boot partition to /mnt/boot
mount /dev/sda1 /mnt/boot
# Check /mnt/boot for kernels, if not, figure out where they are.
# Mount the system partitions from the Host OS.
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
mount --bind /dev /mnt/dev
# Chroot to your linux where everything works now...
# now you at / in your old linux.
# set the environment
mount -t devpts none /dev/pts
# Verify you have a working network
At this point you can apt-get packages and fix your system.
--- after chroot
# See what kernels you already have.
# See what kernels you might want.
apt-cache search linux-image
# Depending on space in /boot, install an old and new one you might like
# An old generic one in the preempt list might not appear in the regular list
apt-get install linux-image-<2 .6.32-36=".6.32-36">-generic2>
You can fix about anything wrong with a bad system with this!