Applications often keep a large cache under /data/data/. Unfortunately many of them do not provide a way to clear the cache without clearing at the same the configuration parameters for the app. (You can clear the whole data in Settings->Applications->Manage applications.) You can find which applications use most space with:
du -sk /data/data/* | sort -rn | head
then move the biggest caches to the SD card as in the following example:
cd /data/data/com.android.vending
rm -R cache
mkdir /sdcard/cache/market
ln -s /sdcard/cache/market cache
Moving stuff to the SD card is unsafe since all apps can read and write its contents. So only non-sensitive data should be moved there.