The process of rendering an object that casts a shadow normally involves one rendering pass to produce the actual object and another rendering pass to produce its shadow (to oversimplify a bit). As far as DX10 is concerned, these two passes are just two separate heaps of polygons - setting up the polygons and their render state so that the result looks like an object that casts a shadow is the responsibilty of the game developer, not DX10 itself.
As far as predication is concerned, you would presumably just have separate predicates for each of those two passes.