A couple of hints for you:
1. Bandwidth is just one of many resources in a computer system. Make sure you are not being slowed down by any other resource, like reading your 2gb file from disk, or using too much CPU. Sending the same repeating pattern of data is a good simple way to generate traffic without taxing other resources.
2. Networks are like road systems; your bandwidth is limited by bottlenecks in the system. I find it almost impossible to saturate a 100mb LAN connection, but easy to saturate things like a cable connection, DSL, etc. Your network card may not say the connection is saturated because it measures LAN traffic, not internet traffic. There may also be other traffic on your network slowing you down. What benchmark are you using for comparison?
3.There is a huge difference in performance when transferring small files vs. large ones. Some networks like Comcast give you up to 10x performance for the first 10mb. This gets most traffic out of the way quickly so the network is free to handle other requests. However, large downloads can be slowed down to less than half your normal speed to make sure there is still room for other traffic.
If you can determine which of these issues are slowing you down, then we might be able to provide more specific guidance.