This is an interesting case, as I can switch a client site from a bloated shopping cart if s2member can do do this.
The idea is for event registration - members can pay for the event but once a year there is an annual membership fee involved. This fee is due for the first event in a calendar year the member buys. Two examples:
Member 1:
Attends event in April 2010. Pays for event & annual fee.
Attends event in June 2010. Pays only for event.
Attends event in January 2011. Pays for event & annual fee.
Member 2:
Attends event in September 2010. Pays for event & annual fee.
Attends event in January 2011. Pays for even & annual fee.
Attends event in April 2011. Pays only for event.
I guess this could involve 2 membership levels - one for the annual fee and another for events?