filters is the way to go here. you can (dis)enable them per session to
get a clean domain. Where clauses are permanent, filters are not.
there is an article or 2 on nhforge wiki about filters. ayende and
fabio (i think) also have posts about filters on their respective
blogs.
another option is to have a separate entities for orders. I have heard
of this approach with larger e-commerce models. instead of a status
flag and property to determine the status of the order, you have
entire entity aggregates for each of the different statuses. each
status has it's own set of behavior that is completely independent of
the other statuses. they are usually something like
Shopping Cart
Order
Invoice
CancelledOrder