Bart De Smet just wrote a long post about LINQ predicates that can be defined without returning a boolean value.

This is something I partially evaluated writing the Programming Microsoft LINQ book, but in his post Bart goes very deep on this topic and shows a lot of interesting details and ideas.