I've been using ICS on my Samsung Galaxy S3 for a while now, but I can't update to Jelly Bean for multiple reasons. I've decided to switch to Cyanogen Mod, is there any way I can move to Cyanogen without losing any application data?
As geff described, you cannot avoid a wipe/factory-reset. But you can do a proper backup beforehand, so you can restore most of your data afterwards. This should work without any trouble for the apps you've installed yourself ("user apps"), while special care must be taken for pre-installed apps ("system apps"): As data structures (inside their databases) might have changed, a simple restore (replacing the databases) might break things and even render those apps unusable.
Provided your device is rooted, Titanium Backup is a good choice. Backup all "user apps" and their data, plus the "system apps" and their data. Special care on restore: "user apps" can be restored 1:1. Before goint to the "system apps", make sure to turn on TB's "migration" mode. Then restore only data, and do so one-by-one, after each "data set" verifying there are no side-effects.
An alternative to be named is Helium Backup, which even works on non-rooted devices.
Safest is to stick to your "user apps", and let contacts etc. solve via sync. For several things like SMS, there are special backup/restore solutions which you could use.
Moving from stock ROM to custom ROM usually requires a wipe or a factory reset. Otherwise, you will encounter force closes (FCs), heat issues, and possibly other problems. In short, headaches.
Even upgrading from a CyanogenMod (CM) to a major CM version will require a wipe, especially if it contains a major Android update. This is because the files / directories are now different (layout-wise, etc). I'm sure there are other reasons too.
Most, if not all, will also recommend you to do a wipe. This is the best way to ensure that the installation will be smooth.
Of course, you can still rely on Google Sync to ensure that your contacts (and other syncable data) can be restored.
Resurrecting an old thread.. but see http://forum.cyanogenmod.org/topic/74526-how-do-i-update-cyanogenmod/ which says you don't need to do factory reset/wipe cache etc....