As Tom Carpenter already wrote, the easiest solution is to use such sockets, if you have a two-layer board.
If you have a multilayer board, there might be a solution for your "half depth holes", if you absolutely want them.
Remember that multilayer PCBs are typically made of thin two-layer boards which are glued together. Pads and vias are drilled and plated after that step, but it is also possible to drill and plate some of the PCBs before. The result are vias between inner layers without visible holes, called buried vias, and vias with a hole visible on one side only, called blind vias.
In the DRC, you could specifiy a layer setup of((1*2)+(3*16))
which means that there is a multi-layer board with layers 1,2,3,16 (16 is always bottom), and vias can be created through all layers or between layer 1 and 2 or 3 and 16. Also make sure EAGLE will handle the stop mask correctly. It has to cover them in the stop mask layer, so there will be no coating.
When placing a via, you just choose which layers to connect.
Pro:
- You don't have to ask the manufacturer for a special job, since this is a standard technology
Contra:
- Not every manufacturer supports blind/buried vias, e.g. all this pooling services typically don't. The reason is that this is some extra work and so cost, and most customers don't need blind/buried vias.
- As said: Extra costs.
- For EAGLE, PADs make the connection between parts and routed signals, not Vias. This makes routing difficult. I would recommend to design the board as usual, and as last step, place the blind vias where the pads of the Zigbee are, and then remove the Zigbee.