With a lot of windows open the annoying part of =org-capture= is =switch-to-buffer-other-window= for me. My approach is using the current window for the capture buffer:
#+BEGIN_SRC elisp (defadvice org-capture (around bp/org-capture--around) (flet ((switch-to-buffer-other-window (buf) (switch-to-buffer buf))) ad-do-it)) (ad-activate 'org-capture) #+END_SRC