It needs to be supported by the NIC. Even top of the line laptops skimp on components. Learned about this in job school (it was mentioned anyways). I forget what the exact phrasing of the tech is... ah, here we go:
Auto-MDI-X (MDI is normal, MDI-X is crossover, auto means it figures out what it has in place, and what the connection needs, and figures out the needed connections regardless of the physical layout.)
EDIT: I should mention, you only need one Auto-MDI-X interface, BTW, as that one will adjust itself and the other end will then have the correct connection as well.
EDIT2: You must have the data rate and duplex setting on the NICs set to auto for auto-MDI-X to work. This is done in the adapter settings in the Network Connections Control Panel group in Windows.
{emphasis mine}
Auto MDI-X[edit]
To connect two ports of the same configuration (MDI to MDI or MDI-X to MDI-X), an Ethernet crossover cable is needed to cross over the transmit and receive signals in the cable, so that they are matched at the connector level. The confusion of needing two different kinds of cables for anything but hierarchical star network topologies prompted a more automatic solution.
Auto MDI-X automatically detects the required cable connection type and configures the connection appropriately, removing the need for crossover cables to interconnect switches or connecting PCs peer-to-peer. As long as it is enabled on either end of a link, either type of cable can be used. For auto MDI-X to operate correctly, the data rate on the interface and duplex setting must be set to "auto". Auto MDI-X was developed by Hewlett-Packard engineers Daniel Joseph Dove and Bruce W. Melvin.[2] A pseudo-random number generator decides whether or not a network port will attach its transmitter, or its receiver to each of the twisted pairs used to auto-negotiate the link.[3][4]
When two auto MDI-X ports are connected together, which is normal for modern products, the algorithm resolution time is typically < 500 ms. However, a ~1.4 second asynchronous timer is used to resolve the extremely rare case (with a probability of less than 1 in 5×1021) of a loop where each end keeps switching.[5]
Subsequently, Dove promoted auto MDI-X within the 1000BASE-T standard[5] and also developed patented algorithms for "forced mode auto MDI-X" which allow a link to be automatically established even if the port does not auto-negotiate.[6] This may or may not be implemented on a given device, so occasionally a crossover cable may still be necessary when connecting auto MDI-X to MDI-X (hub or switch), especially when autonegotiation is deactivated.[7] Newer routers, hubs and switches (including some 10/100, and all 1 gigabit or 10 gigabit devices in practice) use auto MDI-X to automatically switch to the proper configuration once a cable is connected. The other four wires are used but are not crossed since auto MDI-X is mandatory at the higher data rates (1000BASE-T transmits and receives on all pairs simultaneously without any dedicated send/transmit pairs).