The problem with UGC is that there's a strict limit to how much work it's worth investing in it, because there's a such a high probability that your work will be lost in the mix.
Game makers know that they can hide this problem very easily, because they can advertise the best and most successful UGC. Nobody is going to complain about the UGC that was good but that no-one noticed because.. well, because no-one noticed it.
On the other hand, they can design around it. I'm thinking of Guitar Hero having an Achievement for uploading a track (aaarggh! That instantly guaranteed that the board is overrun with rubbish), or the first version of LBP where the only sorting of levels was by popularity. I remember seeing an actual post where someone said, "what's the point of designing a level when, even if you advertise it on boards, it'll get maybe 200 plays and never make the top page no matter what?" Second Life, rather cynically, is designed to make money from UGC whether it's noticed or not, and to make even more money from people advertising it.
Do I have a solution? Divide UGC-using users into smaller "groups" which can communicate within each other. The most popular levels within these groups are then promoted up a rung to greater visibility, and so on until the very top level where they're visible to all - but to download those top-rank levels, you have to pay with credits that you get from viewing levels within your own local group. The idea is to keep the small supportive communities, which often drive creation in these games when they're new, going. When this works, it works well: for example, in Second Life I've heard from many of the newer creators who've done well that they basically got into a group which supported and noticed what they were doing, which is great, but since it's not organised it's entirely a "right place at the right time" thing.