I thought this was sort of interesting, so I'll pass this along as well.
I ended up redoing my iTunes (in fact, my whole computer) this past weekend and started from scratch.
Anyway, new iTunes means my iPhone and iPods will need to be resynced with a new library. So I had everything prepared (copied over the ********* and synced all my contact images... figuring I would have to reassign them all once I set up Zimbra to sync the contacts). The interesting thing is that once I did it... all of the contact pictures were reimported and assigned correctly without me having to do anything. Nice.
I tested it to see if they had fixed the underlying problem but they haven't (I just tried assigning someone's picture to a contact on my computer... but the picture didn't transfer to the phone). So initially, it seems that all contact pictures must be assigned from the phone... but once they are done there they can be reimported.
The ********* had to be redone.
Looks like the problem is still "assigned", though, so I'm not sure if anything was done recently to improve this or not:
Bug 29902 – Address book photo doesn't sync via iPhone 2 ActiveSync