I used to use a2sd, now I use int2ext+. I find it's a bit easier than a2sd, as you don't need to go into the terminal emulator to change settings or anything, you just choose the appropriate script (there are others by the same dev besides int2ext+) and install it. Does ziplining automatically too. There's basically no reason to use a GUI really like S2E or whatever.
To the above poster, you basically partition your sd card using clockworkmod, then you install a script (such as int2ext) also via clockworkmod, and then that basically just moves all the apps for you. There will be tutorials online about partitioning and installing scripts that explain it better than I could, so I won't elaborate any further.