I had put together a breadboard version of an Arduino Uno, and the first problem I had was installing the drivers for my CP2102 USB to UART device.
Solution to that problem: I eventually found, downloaded, and installed the driver from here: http://www.silabs.com/products/mcu/Pages/USBtoUARTBridgeVCPDrivers.aspx
After that, I was able to get the Blink sketch uploaded and was happy to see that everything seemed to be working. But, something important came up, and I had to put all my hobby stuff away for the day. I came back to it a few days later, and I was about to go insane because I could not upload anything. Kept getting those annoying sync errors.
Solution to that problem: I disconnected my power supply and connected the USB power from the bridge. (I actually had it wired that way when I installed the correct driver, but I didn't know at the time that this was necessary.)
Everything is just dandy now. Uploading sketches is no longer a problem.
So, I'm not so sure what might be wrong with my normal method of providing power to the board, but it turns out that the USB to UART bridge only works when I have my board power coming from the bridge. Anyone know why this is necessary?