EDIT:
I was able to resolve the issue on both atmega328’s that I was getting the Not In sync error on. In short it appears as though my ftdi was not communicating correctly with the atmega because the auto-reset was failing. In order to correct it I burned the arduino pro 5v 16Mhz bootloader onto the atmega, and then re-burned the duemilanove bootloader. This in conjunction with the 100nF ceramic cap and a 10k resistor on the atmega’s reset pin. After doing this i’ve been able to load sketches onto both chips without a problem. I feel it’s important to note that the atmegas still do not work unless a 100nF ceramic cap is put between the ftdi and the m328p.
I’ve been fighting with this EXACT same issue for a few weeks now… I will say though based off of the picture andd your description i noticed that it doesn’t sound like you hooked up the FTDI to perform an auto-reset. The ftdi adapter that sparkfun sells is designed to be able to auto-reset an atmega if you hook up the DTR pin directly to the reset pin of the atmega. It is often recommended that you place a 100nF ceramic cap between the DTR pin and the reset pin but i’ve had it work without it.
This alone should make the arduino auto-reset and upload the sketch correctly. It should be laid out something like this:
http://img194.imageshack.us/img194/1794/atmegabb.jpg
Obviously you’re using the 16Mhz crystal for your project as opposed to the 16Mhz ceramic resonator… but the only difference is the resonator does not require the two 22pF ceramic capacitors that the crystal requires.
If you hook up the atmega in this manner and it’s still not working then we’re both having the same issue.