“the good old days”
As a Perl programmer, I've been using YAML since .. forever, it seems. It's "interesting" (for low values, and all) that it's suddenly trendy.
I don't think it's a good language for user-editable config files, though, unless they're quite simple. For a start, I don't think users should be forced to look up syntax rules. Also, I like a config file format that allows comments so that you (or another user) can use to understand what's going on. YAML can have embedded comments, but if you slurp the file and then regenerate a new copy, those comments get lost. Compare this with simple key-value files that you can "source" in bash/sh (so regenerating or updating is just a case of changing specific KEY= lines, and passing everything else, including comments, through) and it's just needlessly adding complexity.
Where YAML shines for me, though, is when it comes to working with complicated data structures. A typical programming task for me is to collect data from some mix of sources (eg, web pages) and pull out salient information for later processing. If I was doing this in a project, my manager would probably ask me to document a schema, create some databases and so on. However, usually I don't know in advance what these schemas might be, so my scripts just evolve, adding new data fields and even entirely new structures as I go. I often add "pointers" (cross-references) from one structure to another. At the end of if, I can just dump all of these structures into a single YAML file.
Later on, I can write a second script that reads that YAML file and creates something more refined out of it, eg, turning it into a proper database, with referential integrity and all that stuff. Or, this being Perl, I can keep the YAML file as a first-class data/object storage format, even embedding it into a library file if I want to. If I ever decide that I want to switch languages, eg writing a C or Python application, I can either use the YAML import features of that language or write a simple code generator to, eg, output a set of literal C structs or whatever.
In summary, YAML is good for sloppy/fast development cycles with quite complex, loosely-defined data schemas, but if it becomes important to impose more structure (eg populating/updating a database with a more rigid schema, or embedding it into some other bit of code), then YAML is still a good stepping stone. Less end user, more rapid development aid.