I recall running across it when I was learning Guice and thinking "Ooh, this looks like it will be really handy!" (I was looking for something like Guice 3.1's ProvisionListener). In practice, every time I have thought "Hey, this must be what TypeListener is good for" it turned out that I was thinking about whatever problem I was having wrong.
If you're new to Guice, you can most likely safely ignore it for a long time, probably forever. It looks like a path that leads somewhere but my experience has been that there's never something you could do with it that you couldn't do in a more straightforward way without it. You might use it if you wanted to trigger some work after something is injected, but that's only really useful if it's, say, a library class you don't control - if you wrote the class, there are simpler ways to do those things.
Rooting through my own code, I found one usage in some experimental code -
http://j.mp/15aFlbV - to do some automatic MBean registration - and looking at it, I should have just used an eager singleton, so it's just a code-smell there.
Maybe someone else will have a brilliant example where it's actually useful.
-Tim