Matt Winkler just gave a great talk on using and extending Windows Workflow Rules.  In the session he talked about the different options for accessing the rules engine including the very interesting revelation that you can use the rules engine without using a workflow.

In other words you can use the rules engine in your normal .NET applications and get the rules to work on normal .NET objects.  You're not just restricted to running rules from within workflows!  It's very, very cool and opens up a whole lot of possibilities and options for developing your .NET apps.

Matt also ran through the use of rules in activity conditions, policy activities and custom activities; how to use attributes on methods to tell the rules engine how to behave; he showed a number of different custom rule editors; how to write your own rule editor (including changing the semantics so that your users can use domain specific languages, etc) and finally threw the floor open to questions.

Some interesting things that came out of the session - the WF team tested the rule engine with over 100,000 rules in a single ruleset, including rule chaining.  Some people have real world rule sets with a few thousand rules.  A rule set is evaluated in a single thread meaning performance will be directly linked to the number of rules in a ruleset.

What's the biggest problem with the WF Rule Engine? The lack of debugging support - if you've got lots of chained rules it's really hard to get a handle on where things might be going wrong.  Tools like the Ruleset Analyzer can help but it's obviously not as good as a debugger.