I have a shield that does not pass the six pins.
I hate it when they do that.
I've researched this a bit and it appears those pins are only used when the Arduino is to be used as a "slave".
Wrong. The ICSP header on your Uno contains pins 11, 12, 13, Reset, 5 V, and Ground. There is no magic to the ICSP pins. It's just the same pins as you find on the female headers, except all broken out in one standardized header.
Would it be safe to say for almost all Arduino applications the ICSP for Atmega328 pins are not used?
That is not safe to say. The ICSP header is used by any shield that has a SPI device. The reason the shields use the ICSP header instead of pins 11, 12, 13 is that those are not the SPI pins on the Mega or Leonardo. This is what is means when you see shields advertised as "Mega compatible".
Does the w5100 need to be connected to the ICSP for Atmega328 pins to function properly?
The W5100 is an SPI device. All but the oldest or worst designed W5100 shields use the ICSP header for that connection (for the reason I explained above). Usually you will also have an SD card slot on the Ethernet shield and that also uses the ICSP header (SPI is a bus so you can connect multiple devices to it.
Now, it is possible to wire a shield to pins 11, 12, 13, instead of the ICSP header. But the whole point of a shield is that you can just slap it on the Uno and all your connections are made.
My recommendation would be to put the crappy screw shield at the top of the stack. Or you could buy a 2x3 long/"wire wrap"/passthrough header and replace the one on the screw shield.
Please take some time to read this very useful information: