I've been looking into this myself.
Turns out.. this is what's going on.
There is of course memory directly on the phone that has nothing to do with any SDcards that may be installed.
this memory is partitioned into 2 partitions.
/system
and
/data
(i'm doing this from memory, as i'm basically looking to help my gf out of this same issue, so my details may be a bit fuzzy, but over all correct)
So /system has something like 250 MB of room, which houses the OS itself for the phone.
/data partition has 500 MB of room, and sadly, this is where all the data get stored when you install apk's (apps) onto the phone.
Even if you move the apk itself to the sdcard, the majority of the data the software uses gets stored in this tiny 500 MB of space, and can't BE moved anywhere else. This is the design of android.
I don't have an answer yet.. but i know i'm on the right track..
what needs to happen is some sort of mounting of the /data partition to a folder on the SD card.
This would allow that 500 MB of storage to open up to however big the SD card is... I found a bit of software in the Play store that is part of the answer for getting this done.
I have a feeling this is best done with someone who not only have root access to their phone, but knows a bit about linux in general in case something goes wrong.
Meaning if you do this, and someone removes the sdcard.. might be a bit catastrophic for the phone.
I'm not sure what the effects would be.. still researching this.
the app store has an app called
Mounts2SD - ALl in one SD-ext that looks promising.
I haven;t gotten a chance to play with any of this yet though....
Good luck guys.
[DEV][19NOV] Native Mount DataOnEXT with DalvikOnNAND (Test #2) - xda-developers