It’s an old article to which Marwan Tarak refers, but could be extremely usefull. WSS 2.0 (only) does not support some sort of audience mechanism that SPS has, besides the thing that if a user doens’t have viewing rights, the webpart won’t show up or displays an error. In some custom webpart cases we did we, we would render a webpart, based on the persmissions a user has. From a user experience point of view, this is very usefull in stead of displaying content and link and when you click it, a logon box appears.
A while ago, Modonovan published code and a mechanism to create some sort of audience mechanism in WSS, based on roles. This mechanism is based on IRuntimeFilter and could be a solution an many cases.
“By implementing IRuntimeFilter you are essentially creating a rule or a set of rules that determine if a web part should be displayed or not. For example:
- SharePoint Portal Server (SPS) uses a IRuntimeFilter for audiences. A user will setup the audiences that are allowed to see a web part (using the advanced section in the web part’s toolpane), then when a user visits the web page the filter runs and determines if the web part should be shown or not. If a virtual server is extended with SPS then the Microsoft.SharePoint.Portal.Audience.AudienceManager filter is installed by default.
- You could create a custom IRuntimeFilter that determines if a web part should be displayed based on the WSS role the user is a member of. This is what the sample code in this document does
- You could create a custom IRuntimeFilter that determines if a web part should be displayed based on any arbitrary property or rule(s) that you come up with.”

Read the full article here