If you have a basement and attic access it's not all that hard, at least to me. It does take some planning and skill though. You'll need a decent drill, 3/8 variable speed battery or plug-in, and an assortment of bits. Get bits in 1/4" and 3/8" in 12" and 24" lengths. Also get at least one 3/8" and one 1/4" by 54" Diversabit. I usually drill up or down first using a solid shank bit, the 12 or 18" as appropriate, the finish the drill through the sill or top plate with the Diversabit. The Diversabit has a hole for wire pulling on both ends so don't pull the bit out once you're through the plate. Attach the wire and use very low speed, in reverse, to pull the wire up without twisting it too badly. My favorite method is to drill through the plate and pull the Diversabit back out, take it out of the drill and use the shank end to get back through the plate. Keep in mind that you're trying to hit a 3/8" hole while "blind" inside the wall with insulation. Above doors is fairly easy because of the solid header over a door. I've also used a piece of electrical snake, say a 15 foot piece, and carefully straighten the first few feet, to get back through the hole and pull wire without twisting the crap out of it. The snake is great for attic work because you can push enough snake up into the attic so that you're not crawling out to the eaves for each window. That can also be helped by a five or six foot pole with a hook so you're reach can be extended as well.
Always inspect, carefully, where you're going to be drilling. A stud finder will keep you from hitting a stud when going down from windows. Sometimes drill locations are a compromise of practicality versus desire but usually three inches from the inside edge works well. Also, be aware of how much bit you're pushing into the wall cavity as you're drilling. If a window sill is three feet off the floor you'd expect to need just over three feet of bit to go into the hole, not the full length of the Diversabit. In other words, use some common sense and be aware of what you're doing. Even with all that, and lots of experience, mistakes can happen. I managed to drill through a PVC vent pipe for our master bathroom sink. It runs along the top plate right over the side entry door nearby. It was buried with insulation in the attic so I didn't even know it was there. Easy to fix properly, but it was a surprise to have water come out, condensation pool at a low spot of the pipe, when I pulled the bit out from that one.
My preferred door contacts have always been 3/4" recessed contacts. I drill the 3/4" hole first, deep enough to accommodate the contact and wiring, then use a 1/4x24 bit to go up into the attic. A drop cloth and shop vac are required pieces of gear by the way.
Above all, don't rush. Go slow and plan each contacts' specific location and where you'll be drilling. Don't force things, especially the Diversabit. The flexible shaft of a Diversabit can bow inside the wall which will make the bit drill a hole at an angle that you can't see or control. A great way to end up having to do some sheetrock repair or siding repair.