Seems like this is the kind of question that should be on the TopCoder Round Tables instead of here 
Take a look at the development section of the TopCoder website. Basically TopCoder has competitions to create reusable Software components that they license to their subscribers for money. When they figure out what components they or their clients need, they write a set of requirements and they hold a design competition for that competition, where some number of people will write up a software design for the platform the component uses (.NET or Java). This includes class designs, UML diagrams, etc. The designs are reviewed and critiqued and some other stuff probably happens, and they select a winner (and maybe a second-place, which probably also wins money). Then the next week, they post the winning design and allow people to sign up for the development competition for that component. Within a week, all their implementations of the design come in and a winner and second place implementation are selected (both of which get money up-front). Then TopCoder sells licenses to the component and pays royalties to the winning designer and developer.
I've never actually participated in a TopCoder component competition, but that's my basic understanding of it. Generally the components are real-world things that either TopCoder needs internally or one of their clients need (looking at the Component or Development websites at what is currently available should give you some idea). It doesn't have the quick-and-dirty charm of the Algorithms contest in my opinion, but you do get more money (unless you're REALLY good at the algorithms contest).