Is a vector bundle just a generalization of a Tangent bundle, where the vectors no longer have to be tangent to the manifold but can have components normal to it? Or is there more to it than that? Thanks.
Let me start by describing the general thing, a fiber bundle (aka fibre bundle, or just bundle).
The idea is roughly the same as forming the tangent bundle; you choose a fiber and attach a copy of it to each point on your manifold. Also, you specify a way of "sewing" them together; that is relating the fibers of nearby points. The result is a fiber bundle.
The tangent bundle is an example of a fiber bundle. The fiber is Rn, and the structure of the manifold is used to sew them together in a special way.
Whenever the fiber is a vector space, and the "sewing" respects the vector space structure, then the result is called a vector bundle. So, the tangent bundle is a vector bundle, as is the cotangent bundle (the cotangent space at a point is the dual space to the tangent space). Tensors at a point also form vector spaces, so tensor fields come from vector bundles as well.
Vector bundles don't even have to relate to the geometry; we can simply take the product manifold MxRm to be a vector bundle!
Ok, I've been nebulous on what "sewing" means; here is the full definition:
Given a manifold B (called the base space), a fiber bundle on B with fiber F is a manifold E (called the total space) along with a map f:E->B.
Intuitively, we interpret f as being the function that "projects" E onto the base space. For example, if E is the tangent bundle, and v is a tangent vector, then f(v) is the point whose tangent space contains v.
Furthermore, given a neighborhood U in B, f^-1(U) has to be homeomorphic to the product space UxF, and this homeomorphism has to respect the projection f; in particular, if h is the homeomorphism from f^-1(U) to UxF, and x is in E, then the U component of h(x) has to be f(x).
(such an h is called a trivialization)
To be a vector bundle, then every h has to be a vector space isomorphism at each point.
A vector bundle is a family of vector spaces, one at each point of your base space, with one requirement: they must look locally like the product bundle, or trivial bundle UxV, where U is an open set in your base space and V is the model vector space for your vector bundle. This is clear at the very end of the post by Hurkyl.
Only a manifold with a differentiable structure can have a tangent bundle, but any space Y can be base space for a vector bundle, e.g. the trivial bundle YxV, as he said.
Essentially every method of constructing new vector spaces from old can be applied to construct new vector bundles from old. E.g. the dual construction transforms the tangent bundle T into the cotangent bundle T^.
The n fold tensor product construction transforms the tangent bundle T into the tensor bundle: T tensor T tensor T....... tensor T, n times.
The n fold exterior product construction transforms the n dimensional cotangent bundle
T^ into the "determinant" bundle "wedge n" T^.
The direct sum construction transforms the bundle T into the bundle T+T+...+T,
the most general bundles that arise in physics seem to be of form
T tensor T tensor T.....tensor T tensor T^ tensor T^.....tensor T^.,
or maybe also with some exterior tensors in there.
(Technically the construction has to be "continuous", as discussed by Atiyah in his book on K theory, but almost any conceivable construction is continuous.)
As you mentioned, the normal bundle for an embedded bundle is another example of a vector bundle.
vector bundles also have an analog in algebra. if we think of not the vectors in the vector bundle, but the algebraic structure of the sections of the vector bundle. i.e. of the vector fields, we see that we get a module over the ring of functions on the base space. i.e. just as a single vector can be multilied by a single number, so also a field of vectors can be multiplied by a field of numbers, i.e. by a function.
then the local product structure part of the definition of bundle, implies that this module is locall free. i.e. near each point, we can pick a basis say of n vectors, that works simultaneously for all vector space fibers in that neighborhood. then a section of the bundle in that neighborhood is just determiend by the field of n coefficients, i.e. by n functions.
thus in algebra the analog of a trivial bundle is a free module, and the analog of a vector bundle is a "locally 'free" module. This time localization is in the algebraic sense, where the localization of a ring at a maximal ideal say, is defined as all quotients with denominatyors not in that maximal ideal. if we recall that the functions vanishing at a point form a maximal ideal, this is naalogous to saying we are taking functions that are regular near that point.
Such modules are also called "projective" since they have the property that maps out of them always "lift". so in algebra the theory of projective modules is an analog of vector bundles. the fact that over a small neighborhood of a point a vector bundel should be trivial is reflected by the algebraic theorem that a finitely generated projective module over a local ring is free.