I found the bug in our ne2000 driver that perplexed filip. The bug was that the meaning of the PACKET_HEADER part in ne2000 that was skipped was a simple header put on each packet to determine what buffer page would be used next. This header is only 4 bytes and has nothing to do with the ethernet frame header.
I've now factored in the ethernet frame header and made tcpip work the right way, that is to remove consideration of the ethernet frame header at layers above lan in the receive pipe. This should make all adapters work the same way for larger packets (and ne2000 now work right).
I found few references to how this actually works so I could still be wrong, but I'm going on what filip said and this: http://cvs.sourceforge.net/viewcvs.py/openh323/pwlib/tools/PacketVxD/epacket...
Which basically confirms filip's opinion.
Please try it out.