The empty string is not there between every two characters implicitly but quite explicitly. In fact, there are two empty strings between any two characters, and between those two empty strings there is another, third, empty string. However, since empty strings are empty, them being there is like them not being there at all.
Let's consider this situation from a slightly more general point of view, but without using fancy words. In a sum $1 + 2$ is there a zero in between? Yes, since obviously $1 + 0 + 2 = 1 + 2$, and in fact also $0 + 0 + 1 + 0 + 0 + 0 + 2 + 0 = 1 + 2$, so that's a whole lot of zeroes. Is this sort of thinking useful? Well, in certain situations it is, for instance when we perform algebraic manipulations of numbers.
It might help to write strings as finite lists, i.e., instead of aabab
we write $[a, a, b, a, b]$. With this notation the empty string is just $[]$, which is probably less confusing than the Greek letter $\varepsilon$. Concatenation then is actually concatenation (link together in a chain or series, according to my dictionary):
$$[a, a, b][b, a] = [a, a, b, b, a].$$
And now, it makes perfect sense to say that there are empty strings everywhere, like ghosts:
$$[a, a, b][][b, a] = [a, a, b, b, a] = [a, a, b][b, a].$$
Finite automata with silent transitions do not "consume $\varepsilon$". A silent transition happens when no symbol is consumed. You might think that "to consume no symbol" is the same as "to consume the empty string" but that is not so! An automaton (at least of the ordinary kind) consumes one symbol when it makes a transition, or it does not consume anything at all. An empty string is not a symbol, and therefore it cannot be consumed during the transition of an automaton.
More formally, the transition function $\delta$ has the type $S \times \Sigma \to \Sigma$, where $S$ is the set of states and $\Sigma$ is the alphabet. The empty string has type $\Sigma^*$ and so it cannot be an argument to $\delta$. The types don't fit.