The Intel Server and Desktop PCI-Express Adapters Product Selection Guide is helpful.
The Intel EXPI9301CT(BLK) 10/100/1000Mbps PCI-Express Gigabit CT Desktop Adapter uses the Intel 82574L chipset which uses the e1000e driver.
The Intel E1G42ET(BLK) 10/100/1000Mbps PCI-Express Dual and Quad Port Server Adapters both use the Intel 82576 chipset which uses the igb driver.
The Intel EXPI9400PT(BLK) 10/100/1000Mbps PCI-Express Gigabit Copper Connection for Servers uses the Intel 82572GI chipset which uses the e1000e driver.
The Intel EXPI9402PT(BLK) 10/100/1000Mbps PCI-Express PRO/1000 PT Dual and Quad Port Server Adapters both use the Intel 82571GB chipset which uses the e1000e driver.
There are three Linux Base Drivers for Intel Gigabit Network Connections:
1. e1000.x.x.x.tar.gz support all Intel® PCI and PCI-X gigabit network adapters/connections.
2. e1000e-x.x.x.x.tar.gz driver supports the Intel PRO/1000 PCI-E (82563/6/7, 82571/2/3/4/7/8, or 82583) based gigabit network adapters.
3. igb-x.x.x.tar.gz supports Intel® 82575/6 & 82580-based gigabit network connections.
Note that the CT has more advanced features than the PT, but the ET is fancier yet.
So now, ahem, which of these are hardware driven and which are software driven? You're telling me the most fancy of the bunch, the ET, is software driven? And that's a bad thing?