Basic encryption question: Why does 128/256 bit encryption have set length keys? I've read about 128 and 256 bit encryption (I obvioulsy haven't read enough). I believe 128 and 256 refer to the size (in bits) of the keys used to encrypt.

Why are these of set length? Surely an encryption key can be any length you want to encrypt with? What part of encryption am I misunderstanding here? Or am I confusing encryption with hashing?
The first  thing that you really need to understand is that cryptographic keys are not the same thing as passwords.  Many newcomers to cryptography are familiar with passwords, and identify keys as an analogous concept—which it is, but the differences are very important:


Passwords are generally chosen by humans; cryptographic keys are randomly generated with a good source of randomness (dice are good, brains are not);
Passwords are generally memorized by humans; but no strong cryptographic key can be memorable.  Keys are instead stored in secure hardware.
Passwords are text that humans can read and type easily; keys are binary data and not generally printable in their raw form.  You need to format them as hexadecimal, Base64 or similar for display.  (Actually, you really shouldn't display them at all, since they're not memorable anyway!)


If your AES key is something like PASSWORDPASSWORD (which I've actually seen ), somebody has likely made a terrible mistake.  A 128-bit key should be 128 randomly chosen bits!



With that out of the way, now we can say: practical cryptographic systems are built by assembling together well-studied primitives (e.g., AES, SHA-2, RSA, etc.), into complete protocols (e.g., SSL, SSH, OpenPGP) for achieving the users' goals.  And given this sort of architecture:


Fixed key sizes generally make the primitive simpler to design, implement and evaluate.  
If arbitrary-length key sizes are needed, this can generally be accomplished at the protocol level.  For example, the AES-CMAC-PRF-128 function is based on AES-128 but uses variable-length keys.  So part of the function's definition is a method for converting the arbitrary-length key into an AES-128 key.
There's no earth-shattering advantage to supporting arbitrary-length keys, so most protocols don't bother with it.
For cryptographic systems that work with passwords, there's an area known as password-based cryptography—cryptographic constructions and protocols for generating cryptographic keys out of human-supplied passwords.  A protocol for encrypting files based on user-supplied passwords works this way—it uses a password-based key derivation function like PBKDF2 to convert the password to a key, and then uses that key to encrypt and decrypt files.  So this is another example of cryptographic modularity—the primitives support only fixed-size keys, but their combination supports arbitrary-length passwords.