FWIW, Gary King has packaged up what's below with some extra loving and SLIME code goodness to make the ASDF-Binary-locations package.
ASDF doesn't specify the output directories for binaries (FASL) files because the system definition isn't the right place to do this. However, specifying the output location is a common question. Here's an answer.
Note that the original contents of this page can be found at here.
It works well, and it is extensible so that you can add other source-fasl locations to the global variable. My clisp and sbcl init files contain the same thing but with different fasl directories.
The only thing regarding this method that is sometimes problematic is for packages which come with data files. The way ASDF works, it will look for those data files in the fasl directory instead of the source directory, and you will get a sometimes cryptic compilation error. The way I solve this in the few cases where it happens is by manually copying the files to the fasl directory.