Sounds like the same issue I had about a month ago when I needed to conditionally process different things in same deliverable. I asked on the dita-users forum and got a bunch of good feedback.
http://tech.groups.yahoo.com/group/dita-users/message/18259What I ended up doing was to create a build run that first compiles a map though a new target I created that filters the content with a datival. The filtered xml files get placed in a folder where I can then run my final compile on and it will pull in the conditionally processed files into the final. It’s a bit of a kluge but it works for us for the current time being. It seems like dita 1.2 may have some ways to get this done.
Here is the target I made that just filters the files and copies any referenced images:
<target name="dita2preCtFiles" unless="noMap" depends="
build-init,
clean-temp,
debug-filter,
copy-files,
copyCtFiles" >
</target>
<target name="copyCtFiles">
<copy todir="${output.dir}">
<fileset dir="${dita.temp.dir}" includes="**/*.ditamap" casesensitive="no" />
<fileset dir="${dita.temp.dir}" includes="**/*.xml" casesensitive="no" />
</copy>
</target>