My big pet peeve project of late has been trying to pull of anonymous personalization in ASP.NET 2.0. I've talked to several PMs on the WebParts/Portal Framework team, and they say that such was possible previously, but it's since been taken out.
It's become more of a hobbyist project now than anything, even though most people I've talked to defer to using content stored in a database to provide personalization. Basically, I'm trying to create a facility that will allow a site's user to be able to shift WebPart-based content areas around without requiring membership.
It's a stretch, but I'm still working out the kinks. I'm just running circles around how to get an index for each WebPart and persist it, across postbacks and through sessions.
In the process, I've been turning the WebParts API upside-down trying to figure it out. It was mentioned previously that the protected SavePersonalizedData() method probably provides this type of functionality.
What was that line about persistence being a virtue?