I had other valuable information about this in a second post. But some @#$! stupid ass moderator deleted it. Go ahead -- delete this one too you jerk. We'll use some other service to help people fix problems.
Myself and many others (according to my Google searches) are having this same problem with Ubuntu 11.10, whereas for me also I never had any trouble with network drivers in 10.x or even 11.04.
EDIT: Cause of problem NOT resolved, after all :'(. The following might still be involved in some way, so I'll leave it here for others to reference. But it turned out NOT to solve the problem. Neither did reverting to a 2.6.x kernel. See my second answer, below the comments for this one.
My system is using the r8169 driver for my Realtek 8168 chip Ethernet port (on the motherboard in my case. Note: 8168 -- not 8169!)
I finally got onto this issue when I found this post. I quickly confirmed that my 8168 card was using the r8169 driver by running ...
sudo lshw -class network
..., which takes a while -- just be patient. :-)
You can see the driver being used in the configuration: line ... Example: ...
configuration: autonegotiation=on broadcast=yes driver=r8168 driverversion=8.026.00-NAPI ...
Then I mostly followed the instructions in this post to install and activate the correct driver, changing specific paths as required to match my system. Note that the driver download site does not mention the v3.x.x kernel (only 2.4.x and 2.6.x) But it works just fine anyway.
If you have only one network interface, then you should be all set by this stage.
Unfortunately, it wasn't quite that simple for me, because I also had a second card installed, which did have an actual 8169 chip on it! :-/ So, I couldn't just leave the r8169 driver disabled.
To fix this, I renamed the /lib/module/your-kernel-version/drivers/net/r8169.bak file (the autorun.sh driver installer script renamed it) back to r8169.ko and edited /etc/modules as follows ...
# /etc/modules: kernel modules to load at boot time.
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
... [last two lines added] hoping that this would force the modules to be loaded in that same order, thus avoiding modprobe picking up the r8169 driver for the wrong card. It worked!
To the OP ... I'm updating this for the benefit of other people searching for a solution, because it comes up pretty high in Google results. Hope you don't mind.