Crossover cables are required in some situations because there are two types of RJ45 ports: MDI and MDI-X. As has been explained before, each port has a pair of wires for transmitting, and a pair for recieving. An NIC usually has an MDI port, and a hub, router, switch, or whatever you use (from now on i'll just say H/S/R) will probably have an MDI-X port. The transmit pair on MDI is the same as the recieve pair on MDI-X, and the transmit pair on MDI-X is the same as the recieve pair on MDI, so the signals go from the transmitter to the reciever.

However, when you connect an MDI to an MDI or an MDI-X to and MDI-X, this won't work, for reasons explained above. This is why we have crossover cables - they connect each pair on one end to the other pair on the other end. Some H/S/Rs will have a way to change a port to MDI or MDI-X, but usually when connecting one H/S/R to another, and to connect one computer to another - I have yet to see an NIC with an option to use MDI-X - you have to use a crossover cable.