I have setup a site for a customer that utilizes the free version of Graffiti Content Management System (CMS ). The framework is great and runs pretty much out of the box on Microsoft's ASP.NET 2.0 framework software and runs on Windows Server with Internet Information Services (IIS). In fact, Intelligent, the creators of Graffiti state that their goal was to create an environment where users would not have to understand programming, design, and or system administration. I think they have come pretty close to achieving it.
What it meant for this client was that the setup and intial labor of the site was greatly reduced, thereby saving them money. In any event, I setup an account for the client and placed then in a manager role (which were setup and ready to go), that allows them to publish content via a handy editor. One thing that the role is not able to do is to use the many widgets that are available for the site.
I posted a question on the Graffiti forum that asked is there a way to allow users in the manager role access to the Link widget where they could create links in a special area of the site where the widget is placed. I found that to date you can not. While looking I did find a widget that extends Graffiti's Widget class called an Extended Link List, that was developed in VB.Net. To better learn how to create extended widgets I ported the project to C# and posted it on CodePlex, Microsoft's open source project hosting web site.
If interested, here it is.