Sometimes, applications, as they are developed, do not meet specific requirements or conform specific guidelines and have to be adapted. Lets consider an example of a company portal where there are specific groups for specific tasks:
Each group has specific portal pages, specific applications and specific tasks workflow, and the information they produce is used by other groups.
An administrator does administration tasks, based on the applications he or she has in his or her own pages. Sometimes he or she needs to look for specific documentation, which is located in documentation group pages, and tasks have to be performed on accordance to customers specific needs, which are collected and presented in specific pages.
Scattered information across the portal may lower productivity of users, as they need to continuously move from one place to another to locate relevant content. Integration of information and applications may be important for portal users, but it requires developing specific applications, that will share many parts with already existent but scattered applications and contents.
GrabIt is a lightweight, platform independent, JavaScript library to easily allow developers to select and grab web fragments and place them in the requested place. It can be downloaded from the Romulus SVN
Below there is a screenshot of an application developed composing fragments from different applications (communities administration, wiki pages, users polls.
A more detailed description can be found in section 4.3 of Annual Report on Mashup Integration.
Other situations where this may be useful is when doing specific customization for certain applications that we don't want to apply to all the instances. An example portlet can be found here, where, based on a document library portlet, a new portlet has been created extending the existing one with preview capabilities.