I'd leave the roof rails and their holes alone. Drilling through the roof is fine as long as you seal everything up so that the hole is watertight. You'll need to drop the headliner and figure out where your wires need to be run - most likely they'll run up the A pillar (driver's or passenger's) to give you access to the roof. You might be able to drop the headliner enough by just removing the visor and rubber around the window. When you know where the wires should come through the roof, you're ready to drill. Make sure you're not going to drill through a crossmember or stiffener. Use a metal center punch to mark the hole and give the drill a starting point so it doesn't "walk" when drilling. I recommend using a Unibit if you've got one. If you can drop the headliner down far enough, tape a small disposable drinking cup (even one cut down to about an inch high) underneath the spot where you're going to drill - you should be able to see a small dimple where you center-punched. The cup will catch any metal chips and also protect the headliner should you get too aggressive with your drilling and punch through too quickly. Roofs are made of thin sheet metal, so let the drill do the work rather than pushing too hard and dimpling/damaging the roof.
Drill a hole that's only a little bit larger than necessary to fit the wires through - the wires should feed through easily without scuffing or tearing the wire's insulation. Clean up any burrs or sharp metal edges with a small file. Make sure you coat the bare metal with a good quality primer and let it dry (spray some primer into a disposable plastic cup and apply the primer with a small brush). I'd also consider installing a small plastic grommet - a 1/4" or 3/8" grommet will do just fine if 14 or 18 gauge wires are being run, a little bigger if you want to loom the wires for added protection (I would). You can install Amp connectors and leave them hidden under the headliner at this point, if you want to be able to remove the lights for servicing at some point in the future. Once the wires are run through the hole, goop up the area underneath the hole and the grommet with some clear silicone adhesive sealant (don't be stingy with it), making sure that the sealant comes through the hole a little bit at the top and completely seals both wires and the hole. Lastly, once the silicone is completely dry, get some 3M weatherproof putty that is used for sealing around pipes and wires that come through the walls of your house, and form a little bit of the stuff around the grommet, wires and silicone on the top of the roof. It doesn't have to be a huge gob, just enough to form a cone-shaped "volcano" around the wires, pressing firmly around the roof and wires to ensure a tight seal.
Once all that is done, but before re-securing the headliner, do a "hose check" by pouring water over the wires and hole - if it's gonna leak, now's the time to catch it before buttoning everything up. If you have a leak, silicone the snot out of it until it stops. (If you loomed the wires, make sure you squirt some silicone into the loom about an inch above and below the hole to be on the safe side.)
Good luck!