What usb-versions do you want to support (specifically, do you need usb3)?
To answer your current question/idea:
Can I disconnect the VCC and GND wires on the sniffing cable, so that C will not try to control B?
Yes, unless your sniffer runs on the host-supplied power
Can I place a diode on the D+ or D- wires of the sniffing cable of to make the data flow only one-way?
D+ and D- are differential data (the base-voltage-levels indicate to the usb-device the maximum amount of current it may draw). So.. the diodes are useless for your application. Especially since your sniffer MUST run in 'promiscuous mode'.
Will I be able to read the data off the USB port in C?
If you build a sniffer, then yes, but not with the simple splitter-cable you have in mind.
Also note that USB3 is finally bi-directional (where as previous versions where not).
Also note that USB2 is already 480Mb/s and this might (depending on your computer C) be a lot or impossible to capture as a stream. Now USB3 will be around 5Gb/s...
So if you'd want to build a sniffer of your own, you'd be looking at a differential data buffer capable of at least 480Mb/s, and some processor to handle the copy of the data and store it in memory, then have your computer C download the captured data.
Oh, and don't forget, you'd need software on your computer do do something usefull with the captured data.
The data is encoded with NRZI. A 0 will make the signal flip sign and a 1 will keep the same signal level. If a 6bits of 1 are sended an additional 7th bit (0) is send to make the signal flip. Adding this dummy bit is called bit-stuffing and is used to keep the clocks of the host and client in sync. The clocks are generated from the data signal.
When the signal is received the NRZI is decoded and bitstuffing removed. Then the controller will detect the USB packet start (start with a synac field). The packets are buffers which are called endpoints.
CRC is applied to the packets to maintain data integrity. When an error is detected this will be flagged and the corrupt packet will be discarded.
UPDATE:
Please read this answer that details some very interesting options that might help you with software-only solutions, like in vm-ware or wireshark, depending on what information you need:
A. Physical (electrical signals)
B. The bitstream (which is just the differential between D- and D+)
C. The USB packets
D. The USB descriptors and the USB data
The Arduino has the same issue, and they have implemented a fix a long time ago.
As you can see in the image, Resistors RN4B and RN4A are 1k series resistors between the USB-Serial ic and the Arduino's ATMega328p. This allows a device connected directly to the Arduino headers, like a shield/boosterpack to communicate with the Arduino without interference from the USB-Serial IC.
You want to implement the same thing. Place 1k resistors between your MSP430 and your Bluetooth module. This will mean that the USB-Serial connection has precedence over the Bluetooth module. Any communication between the USB-Serial and the MSP430 will not be interfered by the Bluetooth module. That said, you cannot send/receive from the bluetooth module when the USB-Serial connection is plugged in.
Update: This may not always work though. Some devices, when there is no usb signal on one side, will turn the tx/rx into floating/open inputs, instead of driving the line, which is good, but others, when off can still siphon power via clamping diodes in gpio pins. It can be a pain because this means they attempt to drive the line, preventing others from doing so.. In your case, you might need a bi-directional multiplexer, or simpler, if the usb serial is only occasionally used, you could add a jumper to the line. Plug in the jumper when you need to use the usb connection, remove it when you don't.
Best Answer
Basically, NO. USB is a complex protocol, and there is no direct way to control the D+ and D- lines (your ONE and TWO) from software. You can only cause the USB stack to send certain messages, embedded somewhere in a stream of other messages.
But you MIGHT be able to switch the power to the USB port (your GND and VOC)off and on under software control. Most laptops can do this in some power down mode, so there might be a way. Don't ask me how, I am not a PC guru. The catch will probably be that you switch the power to ALL USB ports, including your mouse and keyboard...