asdf binary locations
This ASDF-Extension below shows one good way to specify the binary locations used ASDF systems.

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.

(in-package :asdf) 

(pushnew "/home/compbio/d95-bli/share/common-lisp/system/" *central-registry*) 

(defvar *system-configuration-paths* 

(defun pathname-prefix-p (prefix pathname) 
  (not (equal (enough-namestring pathname prefix) (namestring pathname)))) 

(defmethod output-files :around ((operation compile-op) (c source-file)) 
  (let ((source (component-pathname c)) 
        (paths (call-next-method))) 
    (mapcar #'(lambda (path) 
                (loop for (from to) in *system-configuration-paths* 
                      when (pathname-prefix-p from source) 
                      do (return 
                            (make-pathname :type (pathname-type path)) 
                            (merge-pathnames (enough-namestring source from) 
                      ;; Kommer bara hit om ingen sökväg matchade 
                      finally (return path))) 

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.