Well, it's used for music, so, i.e. composing a piece of music where you wanted to have fine grained control over the synthesis, timing or sampling. The alternatives are still basically programming, just done in a visual environment rather than in code. Here's an example in Max:
There are other more concrete examples mentioned in some of my posts here. (Didn't post the article, but I've been one of the more active people on the ChucK mailing list for a long while now, so it was a surprise to see it turn up here.)
http://developer.kde.org/~wheeler/images/polysynth-jmax.png
And the same in ChucK:
http://developer.kde.org/~wheeler/files/polysynth.ck
There are other more concrete examples mentioned in some of my posts here. (Didn't post the article, but I've been one of the more active people on the ChucK mailing list for a long while now, so it was a surprise to see it turn up here.)