I have noticed that arduino official shields, such as wifi and wireless shields, have mismatched ISCP header height with male pins. Both point down, but the male pins are 2mm or 0.1" longer.
My first picture shows me holding a PCB over a MEGA, showing that the female headers and at the same height as the ICSP male header on arduino.
My second picture shows three shields, from left to right, official wifi shield, official wireless shield, and a third-party Ethernet shield. As you can see, both official shields have male pins about 2mm or maybe 0.1" longer than the female ICSP header so the female header is not touch the table top. On the other hand, the third-party shield have same height.
This may create loose connection issues when you press the shield against another shield with pass-thru ICSP headers, which are thin pins, not square pins found on arduino. The additional 0.1" travel on the female header makes the connection so much more trust-worthy. I have some issues with some shields I designed and built with wifi shields. I don't know if it was caused by this "feature". From what I understand, all pins should make perfect contact, not some doing it while others have ways to go.
What is your opinion?
To remedy this, I made a tool, by pulling all the pins in a row of female header, indicated in the third picture. Then I slip it over the male headers, and I just have to trip the protruding portion of the male header in half, effectively removing about 2mm length.