On an RJ-45 connector, there are 8 pins. Originally only 4 were used. Tx(transmit) and its ground, and Rx(receive) and its ground. If you used a straight through cable, the transmit pins would be connected to the transmit pins on the other device. The same would be true for the receive pins.
Early networking gear wasn't "smart" enough to know that data was coming in on pins that should be for data transmission, so it didn't listen there. Modern day GigE gear is smart enough so this is no longer an issue. This was never meant to be a design decision, but rather an answer to a previously made design decision.
Edit: To address your question left in the comment -
To simplify the wiring process (both ends could be the same), networking gear was designed with ports that were receiving on the pins that the PCs were transmitting on and vice versa. This made it so that the bulk of cables created could have both ends wired the same way. Since the use of a crossover cable is rare, even more so with the advent of "uplink" ports and auto-crossover on modern switches, this is the lesser used technology.
It really doesn't matter which wiring scheme is used, the problem would remain if the "standard" cable and pinning had been of the crossover variety. Then, what we call a straight through, cable would have had to be used to connect devices directly to each other.