Hey, I had similar issues. I fixed mine by replacing the IVM - integrated supply module. The same module is used on almost every BMW from this time period. It supplies power to many of the cars systems including ignition. When this module gets old and it gets cold the voltage output can drop not supplying enough voltage for the fuel pump to prime and many other gremlins. It's easy to test, located in the engine compartment side of the fire wall on the passenger side in the electrical box(this is on an E53) I think it's in the same spot for most X5's. You just have to remove the covers to get access and i believe there are 4 - 5 torx screws you will need to remove to get the cover off. When the car doesn't start, open the cover and tap on the IVM. If the car starts, that's your problem. I could just bang on the electrical box without removing anything and mine would start. It's a small box shaped module about 4 x 5 x 1.5 inches rectangular shape. It has connectors plugged in and has some fuses as well. It's the only thing that looks like this in the electrical box. Here's a pic
http://www.euromotives.com/i/ebay/f/1431884703.jpg
Make sure you replace it with a brand new one. I tried replacing the ignition switch, tested the fuel pump, crank position sensors and a bunch of other things before I found out about the IVM. It's less than $100 and you can find a youtube video about replacing it. If it's a crank position sensor, the car would usually start after a number of tries so I doubt that's your problem. The IVM is a very likely cause based on your posts.
Good luck