Maybe you can create a separate "site" (or partition) where you store the tags for the competence? When you ask for a tag cloud you are able to provide a site.
Good idea about the sites, but the tags are actually added directly on the IUser object, and user.GetEntityTags() does not destinguish between sites?
I have a customer who would lige a competence tag cloud, where people can tag themselves with competences exactly as they do with normal tags. But these competence tags should not mix with the normal tags.
I am not entirely sure how to approach this. Any ideas?