If you were to log in, you'd be able to get more information on your fellow community member.
I wonder if the concept of "Web services" will provide at least part of the solution. These are "programs" written for the Web that can communicate with other similar "programs" using a well-defined protocol. For example, Microsoft has a protocol called SOAP (Simple Object Access Protocol) that uses XML over HTTP to make method calls to any other Web service on the Internet and receive results. So I could write a component that (say) provides a sophisticated calendar service, and you could use it by calling its published method interface (API, if you will) and using its results to build something at your Web site. An ASP-type organization could tie several of these Web services together and form a larger entity, paying royalties based on usage to each of the Web services' authors. I'm sure there are (and will be) alternatives to SOAP; I'm just using it here as an example of what could be done.