Someone has used somehow a ZIF socket, someone else has built custom ZIF PCB. Here's a simple idea: use another IC socket between the PCB socket and the chip to cancel the stress on the chip when removing it.
Take an Arduino board (this one is running the Blink example):
Gently pull apart the ATMEGA chip (e.g. using one small screwdriver and toothpick): GENTLY (alternating from one side to the other one)...
Here's the chip extracted:
Take another IC socket (28 pins):
and insert it on the IC socket on the PCB:
This way, the stress removing the socket is not trasferred to the chip on the top:
Then add again the ATMEGA chip:
Here's the board running the Blink example again:
Then take another ATMEGA chip (this one has the bootloader alredy loaded in):
With the help of a breadboard, insert the chip on another IC socket:
Here's a new ATMEL brick waiting for programming:
Since the chip on the board is now a bit higher, you probably need extra long header strips on the shields. I've made my own ones.
BTW, if you really like ZIF sockets, you can still stack a ZIF socket (narrow, 28 pins, like this one) on the IC socket on the PCB...