I'm going to answer with something of a polemical frame challenge: FOIL is evil, and probably shouldn't even be taught. Okay... that's a bit extreme. How's this: FOIL is a mnemonic that is, in my opinion, not all that useful, and should not be taught. In my own experience teaching college algebra and precalculus courses, students come to rely on FOIL far to much without understanding what they are really doing. Then they have to multiply trinomials, and it all falls apart.
Instead, I think that students should spend more time actually working with the distributive property of multiplication over addition. FOIL then becomes a special case. That is,
\begin{align}
(a+b)(c+d)
&= (a+b)c + (a+b)d && \text{(distribute $(a+b)$)} \\
&= ac + bc + (a+b)d && \text{(distribute $c$)} \\
&= ac + bc + ad + bd. && \text{(distribute $d$)}
\end{align}
While I think that your concern about working with negative numbers is overblown (students who are working at this level of symbol manipulation should already be familiar with negative numbers), but even so, it can be handled fairly naturally. In your example
\begin{align}
(x+2)(x-3)
&= (x+2)x - (x+2)(3) && \text{(distribution over subtraction)} \\
&= x^2 + 2x - (3x + 2(3)) \\
&= x^2 + 2x - 3x - 6 && \text{(distribute the negative)} \\
&= x^2 - x - 6.
\end{align}
Personally, I find this a little awkward, as one has to remember to distribute the negative (I would have preferred to keep the negation and the $3$ together, i.e. write $(x+2)(x-3) = (x+2)x + (x+2)(-3)$, but this is a minor point).
I prefer to put the emphasis on the distributive property of multiplication over addition (and subtraction, which is really just addition in the other direction) because it is far more generalizable. For example, if I want to multiply polynomials of degree two and three, I would write
\begin{align}
&\color{red}{(ax^2 + bx + c)}(dx^3 + ex^2 + fx + g) \\
&= \color{red}{(ax^2 + bx + c)}dx^3 + \color{red}{(ax^2 + bx + c)}ex^2 + \color{red}{(ax^2 + bx + c)}fx + \color{red}{(ax^2 + bx + c)}g \\
&= (ax^2 + bx + c)\color{blue}{dx^3} + (ax^2 + bx + c)\color{green}{ex^2} + (ax^2 + bx + c)\color{orange}{fx} + (ax^2 + bx + c)\color{purple}{g} \\
&= ax^2\color{blue}{dx^3} + b\color{blue}{dx^3} + c\color{blue}{dx^3} + ax^2\color{green}{ex^2} + bx\color{green}{ex^2} + c\color{green}{ex^2} + ax^2\color{orange}{fx} + bx\color{orange}{fx} + c\color{orange}{fx} + ax^2\color{purple}{g} + bx\color{purple}{g} + c\color{purple}{g} \\
&= adx^5 + bdx^4 + aex^4 + cdx^3 + bex^3 + afx^3 + cex^2 + bfx^2 + agx^2 + cfx + bgx + cg \\
&= adx^5 + (bd + ae)x^4 + (cd + be + af)x^3 + (ce + bf + ag)x^2 + (cf + bg)x + cg.
\end{align}
This is horribly tedious and rather difficult to convey in text (this is what would end up on the board after five minutes of lecture; the story really needs to unfold in real time). Even so, I typically very quickly get to the idea of distributing terms one at a time (i.e. first distribute the $ax^2$ to each term of the cubic, then distribute $bx$ to each term of the cubic, etc). I also tend to suggest that students line up like terms as they multiply, which makes it easier to add coefficients in the end:
\begin{align}
&(ax^2 + bx + c)(dx^3 + ex^2 + fx + g) \\
&\qquad \begin{matrix}
=& adx^5 &+& aex^4 &+& afx^3 &+& agx^2 &&&&& \text{(distribute $ax^2$)} \\
&&+& bdx^4 &+& bex^3 &+& bfx^2 &+& bgx &&& \text{(distribute $bx$)} \\
&&& &+& cdx^3 &+& cex^2 &+& cfx &+& cg. & \text{(distribute $c$)} \\
\end{matrix} \\
\end{align}
The columns may be added to get the same thing as above.
Note that FOIL completely fails here. If we were to only multiply the first, outer, inner, and last terms, we would get
\begin{align} (ax^2 + bx + c)(dx^3 + ex^2 + fx + g)
&= adx^5 + agx^2 + cdx^3 + cg.
&& \text{$\leftarrow$ this is wrong!}
\end{align}
I hear the objection: "But Xander, we don't teach students to FOIL like that!"
You are correct, we don't teach students to do that. And yet, they show up in my class and do it anyway, because they don't understand the deeper concept, which is distribution. The FOIL mnemonic is not all that general, hides the reality of what is going on, and seems to confuse students. Don't teach it.
(Please note: I have intentionally written this to convey a strongly held opinion in an intentionally confrontational manner. However, this really is just my opinion—albeit one backed by my own experience. Do with this opinion as you like.)