There are many ways to solve such a problem. Another one beside GrabCub would be e.g. Watershed.
https://en.wikipedia.org/wiki/GrabCut
http://en.wikipedia.org/wiki/Watershed_%28image_processing%2...
So many variations available via e.g. OpenCV.
Regarding the segmentation phase, we were not satisfied with any existing algorithms because we wanted the tool to be as real-time as possible (for up to 4 megapixel images), so we rolled our own segmentation algorithm that has some similarities to GrabCuts (not GraphCuts).
But the binary segmentation is really only a small part of the technical challenge. You also need to figure out how to anti-alias the boundary, and remove the background halo. Simply feathering doesn't do the job unless you also erode the foreground first, which we wanted to avoid. So we developed a custom sub-pixel background-removal and anti-aliasing algorithm.