Meta Stack Exchange is the site for the questions about the whole Stack Exchange network, since The Great Split. Before it was SE 1.0 site for some purposes (meta which isn't visited I guess), and then shutdown (i.e. not used at all) and just redirecting to Meta Stack Overflow. MSE is not a per-site meta and being only meta which has reputation system (per-site metas derive the rep from their main sites).
Meta Stack Overflow, since the great split, is the site to ask about Stack Overflow (i.e. it's per-site meta, like any other metas except this site, MSE) and about Careers Stack Overflow (before the meta for Careers was Meta Stack Exchange, the change is quite recent). Before the split the Meta Stack Overflow wasn't per-site meta and was conveying the questions about all the Stack Exchange network (and also had the independent reputation system), i.e. served the function which is now held by Meta Stack Exchange.
Do note that another interesting thing is that now the Stack Exchange network of sites is often referred as "Stack Overflow company" (e.g. MSE help), and shouldn't be confused with the Stack Overflow itself.
a lot of the questions there not deal with anything programs-wise there
Meta Stack Overflow is needed to discuss Stack Overflow as I mentioned; but this includes discussing scope and meta-problems occurring on SO. (this applies to any meta). Discussing programming problems on MSO is exactly off-topic, because not about SO.
As for the redirecting links: this is happening due to that split and the mass question migration from MSE to MSO.