Here's a proof that doesn't require the law of cosines.
Consider the expression f(t) = |u + tv|^2 = (u+tv)*(u+tv). Obviously, f(t) >=0 for all t.
f(t) = u*u + tu*v + tv*u + t^2v*v
= |u|^2 + 2tu*v + t^2|v|^2
= c + bt + at^2
with c = |u|^2, b = 2u*v, a = |u|^2.
This is a quadratic function that is never negative (has at most one real zero).
Thus the discriminant, b^2-4ac is non-positive, b^2-4ac <=0 and thus
4(u*v)^2 < 4|u|^2|v|^2.
Divide by 4 and take the square root, and you get the result:
|u*v| <= |u||v|.
The law of cosines (in any dimension) then is a consequence, or rather you can define the angle theta between two vectors u,v by u*v = |u||v|cos(theta).
Hope this helps