Good grief.. popular one today..
ethtool -s eth0 speed 100
see man ethtool for more options.
You might also want to look at the 'autonegotiating' functions. If you're getting a connection which then dies you might have your card set to Full Duplex, and your switch to half. Or um.. the other way around. Or they might not negotiate properly. You would see the kind of behaviour you're seeing if that were the case.