Different methods of moving apps to SD card There is a native method for moving apps to the SD card, by viewing the app info and pressing the "move to SD card" button. (I don't know on which Android version this was introduced). Not all apps can be moved this way. 

There are other apps that promise moving apps to the SD card, such as Link2SD, App 2 SD, MoveToSD, Move2SD Enabler, and many more. Some require root, some (apparently) don't.

Do all these apps work in the same (or similar) ways? Is it the same way of the native method? The native method works the same way as the apps do? Why do some apps require root access and others don't? Is it safe to move apps that have the native method of moving disabled (grayed out)?
Many questions in one, but all connected -- so I'll give it a try:

You can device those apps in two categories, basically: those which work "similar" to the native app2sd, and those which don't. There are several rules an app must obey to be "allowed" for installation on SD card. Apps installed on SD card can e.g. not automatically start at boot time (as the boot_completed event is broadcast before the card is mounted). They also may not offer widgets, services, alarms, and some other things -- as those functionalities would break when the sd card gets "removed" (e.g. when mounted to the PC). All these rules are obeyed by the native method. Those "advanced app2sd" helpers which "move more apps" mostly ignore some of these rules. The app will work nevertheless, but maybe some of its features are broken.

And then there's at least one app working completely different: Link2SD. This app simply creates "symbolic links" to the sdcard (after copying the app/data over there), and thus fool the system which still thinks they're on internal storage. By using a separate partition on the card (which will be "invisible" when connected to the PC, and thus not mounted) it works around some of the caveats -- a trick some of the above mentioned "advanced app2sd apps" also play. This variant obviously requires root, as it handles apps and their data itself -- which is not possible for a non-root app. Same applies to some of the above tools when they offer to move app data / Dalvik cache to the card, which is also not possible without root.