By hand.
Seriously, I have a lot of packages that I've compiled from source because A) they weren't in the repos, or B) the version in the repos lacked a desired feature. I'm a bit paranoid about mixing package managers, so Toast (interesting as it looks) prolly won't be my cup of tea (though I will take a look).
Also, my favored per-user installation directory is already provided; ~/.local, so if the compilation process is the ubiquitous "./configure && make && make install" sort, I'll do ./configure PREFIX=/home/edvard/.local instead.
Oftentimes folks use a different build system like cmake or waf, which throws a monkey wrench in, but similar 'install to non-default directory' functionality is usually there so a little read through the man pages and I'm good.
If it's something that just compiles to a single executable, I just move it to my personal bin directory, ~/.local/bin.
In the case of Lazarus, it likes to be installed to /usr/lib/lazarus by default, but I just compiled and moved the whole source directory with executables (the source is required for adding components) to ~/.local/lib/lazarus.
Every once in a while, I'll find a program that doesn't like being where it's put, and I have to write a shell script that sets LD_LIBRARY_PATH so it can find things, but I've discovered
chrpath lately, which allows you to change the rpath
inside the executable, which keeps things a bit cleaner.
... And then there are those times when I simply download a binary package and unpack it, because I don't feel like installing it or I want to see if it the executable
really needs all those !@#$%& dependencies...