It's up to the app developer if they grant access to store data on the sd card. In particular, there are two types of applications that cannot be stored on sd:
1. Apps that need boot notification - sd is last in boot sequence, so does not provide the needed notification (e.g., anything where you need to receive real-time notifications… like Messaging or Facebook).
2. Apps with widgets, or stand-alone widgets. They will not work.
If your device is rooted, you can use apps like app2sd or force2sd, but the restrictions stated above still apply.