If you use GNU Emacs you should check out Conkeror. It's a web browser, running on a Xulrunner core, like Firefox, that you can control completely via the keyboard, with the same shortcuts as GNU Emacs.
To set up Conkeror as the default browser, to open Web URLs from GNU Emacs, and to make these URLs be opened in Conkeror's new buffer, instead of a new instance:
| (setq browse-url-browser-function 'browse-url-generic browse-url-generic-program "/path/to/conkeror") |
| url_remoting_fn = load_url_in_new_buffer; |
Now it'll open weblinks in Conkeror, and these in a new buffer everytime, inside a running instance of Conkeror, rather than opening a new Conkeror window.