Q: My machine is giving me absurdly long ping times, on the order of multiple minutes long. Why would that be?
A: The system load includes a version of the ping command that attempts to do a reverse DNS lookup on all target addresses. If either a DNS nameserver cannot be reached, or the target IP address does not reverse, you will see long apparent delays before ping returns results — which is easily confused with ethernet hardware problems. You can verify that this is the nature of your problem by disabling ping's DNS support using its "-n" (numeric) option.
The problem is best addressed by ensuring that your machines have correct, matching forward and reverse entries in the DNS. Short of that, one temporary solution is to manually add static entries for all hosts of interest into your Linux machine's /etc/hosts file.
In a number of cases, it turns out that the problem was traceable to cross-wiring in the ethernet cable, or network wall outlet, or ethernet hub/switch, or wiring closet the machine connects to. Therefore, before deciding that the box has a hardware problem, please help isolate the cause by connecting your machine directly to any second TCP/IP host via a crossover ethernet cable, ensure that they are running with compatible IP address information, and repeat your "ping" performance checks.