I was having the same problem: unable to upload a program to a brand new 101. Now it works.
I can successfully load both BLE LED example programs and also the ReadTime program read via Serial Monitor. (BTW, using the iOS MCP app, you need to send either 00 or 01 to turn the LED on/off.)
I am running a modern 64 bit laptop with USB 3.0 ports. All ports work fine with either of two USB cables that I have. So I don't believe the problem is related to USB cables or USB 2.0/3.0.
How did I fix it? Well, I tried several things and I'm not sure which one fixed it, so perhaps someone can try these methodically and confirm the best fix.
1. Uninstall the Arduino IDE and manually deleted the Arduino15 folder in user\..\AppsData.
2. Restart laptop.
3. Download and install IDE 1.6.8. (Earlier failed attempt was with current 1.6.9.)
4. Restart laptop.
5. Open IDE. In Boards Manager, searched Intel, selected Curie boards, and install v1.0.4. (Earlier failed attempt was with current 1.0.5.)
6. Restart laptop.
7. Open IDE. Plug in 101 for the first time. Device showed up normally in Device Manager.
8. Select proper port (COM5 for me) and proper board (101). Select example file LED under CurieBle. Click verify. Looks good. Click upload. SUCCESS! Can now see the 101 in nRF MCP, can turn LED on/off. BLE functions now work with 5V USB charger. (but not 9V battery, guess that's not an option) No need to press either reset button during upload.
So the fix is either one of the software downgrades, or careful installation procedure.
Previously, I tried the dfu-utils updates but that didn't fix this problem.
With the current setup, I see this message:
Invalid DFU suffix signature
A valid DFU suffix will be required in a future dfu-util release!!!
can't detach