A hyperbola is centered at the origin and opens either horizontally or vertically. It passes through the points $(-3, 4),$ $(-2, 0),$ and $(t, 2).$ Find $t^2.$
Because the hyperbola has center at $(0,0)$ and intersects the $x-$axis at $(-2,0)$, it must open horizontally, and $(-2,0)$ must be one of its vertices. Therefore, it has an equation of the form \[\frac{x^2}{2^2} - \frac{y^2}{b^2} = 1\]for some $b>0.$ Setting $x=-3$ and $y=4,$ we get the equation \[\frac{9}{4} - \frac{16}{b^2} = 1,\]which gives $b^2 = \frac{64}{5}.$ Therefore, the equation of the hyperbola is \[\frac{x^2}{4} - \frac{5y^2}{64} = 1.\]Setting $x=t$ and $y=2,$ we get \[\frac{t^2}{4} - \frac{5}{16} = 1,\]which gives $t^2= \boxed{\frac{21}{4}}.$[asy]
void axes(real x0, real x1, real y0, real y1)
{
	draw((x0,0)--(x1,0),EndArrow);
    draw((0,y0)--(0,y1),EndArrow);
    label("$x$",(x1,0),E);
    label("$y$",(0,y1),N);
    for (int i=floor(x0)+1; i<x1; ++i)
    	draw((i,.1)--(i,-.1));
    for (int i=floor(y0)+1; i<y1; ++i)
    	draw((.1,i)--(-.1,i));
}
path[] yh(real a, real b, real h, real k, real x0, real x1, bool upper=true, bool lower=true, pen color=black)
{
	real f(real x) { return k + a / b * sqrt(b^2 + (x-h)^2); }
    real g(real x) { return k - a / b * sqrt(b^2 + (x-h)^2); }
    if (upper) { draw(graph(f, x0, x1),color,  Arrows); }
    if (lower) { draw(graph(g, x0, x1),color,  Arrows); }
    path [] arr = {graph(f, x0, x1), graph(g, x0, x1)};
    return arr;
}
void xh(real a, real b, real h, real k, real y0, real y1, bool right=true, bool left=true, pen color=black)
{
	path [] arr = yh(a, b, k, h, y0, y1, false, false);
    if (right) draw(reflect((0,0),(1,1))*arr[0],color,  Arrows);
    if (left) draw(reflect((0,0),(1,1))*arr[1],color,  Arrows);
}
void e(real a, real b, real h, real k)
{
	draw(shift((h,k))*scale(a,b)*unitcircle);
}
size(7cm);
axes(-4, 4, -5, 5);
xh(2, 8/sqrt(5), 0, 0, -5, 5);
dot((-3,4)^^(-2,0)^^(sqrt(21/4),2));
label("$(-3,4)$",(-3,4),ENE);
label("$(-2,0)$",(-2,0),NW);
label("$(t,2)$",(sqrt(21/4),2),NW);
[/asy]