In relation to Android devices:
1) NONE of the syncing options between Zimbra and Android currently preserves all contact fields.
So beware (see fuller explanation below, for reference).
2) On my Android device I sync over 2000 contacts (both with CardDavSync app and Android's built-in Exchange Activesync), so I'm not sure how/why you are getting a 1000 limit?
3) You can use CardDavSync app from Android Market or
CardDAV-Sync - about. (Only paid version includes certain fields such as Organisaiton, Nickname, etc...)
4) With CardDavSync the set-up is easy, it understands Zimbra servers, and you set-up one sync account for each Zimbra addressbook you may have.
5) CardDavSync works very well with Zimbra, but just like using built-in (activesync) fields are lost as explained below.
6) If you are happy with one-way sync, CardDavSync permits you to sync only from Server to Device - which will prevent data loss.
7) CardDavSync uses CardDav standard - the way Zimbra implements it doesn't allow for multiple phone numbers of some type (such as mobiles), doesn't allow CardDav standard IM addresses, and doesn't allow certain phone fields or any custom fields. So these will not be synced.
8) CardDavSync hasn't been so good with very large addressbooks in the past. It is getting better. It has a very responsive developer.
Good luck!
DATA LOSS WARNING FOR ALL CONTACT SYNCING FROM ZIMBRA TO ANDROID
For example:
a) Create a contact in Zimbra
b) Add 2 mobile numbers and 2 webpages and an anniversary to a contact.
c) Sync it to Android.
d) Edit any part of the contact in Android.
e) Sync again.
f) View contact in Zimbra.
g) Second mobile number is lost, anniversaries are lost, extra URLs are lost, certain phone numbers are lost. FileAs information may have changed.
h) Fling mobile device to the ground in rage. (Throwing Zimbra server to the ground would be more appropriate, but it's probably a touch too heavy!)