Indeed, Android's native "Move to SD Card" does not move the entire app to the card. Things like app's data, cache and dalvik-cache (optimized bytecode) are left on the device's internal memory. You can try to mitigate this by regularly clearing out the cache of apps you use most often (e.g. Browser, etc.) by going to Menu -> Settings -> Applications -> Manage applications -> All
, then selecting the app, and tapping the Clear cache
button. However, you will just be delaying the inevitable.
Also, the fact that not all apps support being moved to SD does not help the situation. For example, widgets and sync adapters may not be moved to SD Card due to a limitation of Android. Other apps simply have not been updated to support this functionality.
If your phone is rooted, you have more choice to mitigate this shortcoming. First, some custom ROMs (e.g. CyanogenMod) allow you to move all non-system apps to the SD Card, even if they don't explicitly support this functionality (even Widgets can be moved, but will stop working after a reboot.)
There are also alternative "Apps to SD" solutions that can move all non-system apps to the SD Card on a rooted phone. For example, the S2E app works wonders on CM ROM, and is very easy to install and use. The DarkTremor A2SD script is a lot more difficult to set up and configure, but works on different custom ROMs.