Apt-get does indeed depend on internet access. You can also have apt-get try to find what it needs on the CDRom that you installed from, but what you need to install gcc "might" not be there. In the 4 or so years I have been working on linux machines, I have never had to work on one without internet.
The fact that samba client can't talk to the windows machines and you don't have internet sounds like they come from the same problem. Internet usually requires going out of your network card and into your /hub/switch/router or what have you, and samba also requires going out the same network card and into the same hub/switch/router etc.
I suspect that either ubuntu doesn't recognize your network card, you didn't configure the network card correctly, or you may have some physical problem, like a bad network card, bad cable, or bad port in the hub.
Assuming you have a normal internal network card, and not anything fancy like a usb card, or a wireless card, try issuing the command
The last line of my lspci says:
0000:02:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5751 Gigabit Ethernet PCI Express (rev 01)
Look through your lspci, and see if it finds any ethernet card. If it does, then check if it is the card you have. If it doesn't find the card, then you have the root of your problem. Normally ubuntu is pretty good about hardware detection, but nothing is perfect. You could try running knoppix or any of the other live-on-cd linux distros, and checking if they auto-detect and correctly use your ehternet card.
If it is something like you set your card to accept a dhcp address, but you don't have a dhcp server running on your router or whatever, than that is also a major problem. try doing
and seeing what your IP address is. If you get an actual address from /sbin/ifconfig, can you ping the gateway? probably not or you would have internet.
By the way, samba client usually works fairly easily out of the box with just a little configuration. Samba server is not so friendly. That's not to say you can't do it, but it seems like you're pretty new to linux, and getting samba server running is not a basic operation. If it is just a simple workgroup kind of thing then it isn't too bad, but if you have some higher level thing like a domain running, and you want samba to replace the domain controller, you're in for a major uphill battle. Replacing an existing domain controller with a samba box was probably the toughest thing I have ever done on linux.