In general, the main differences between distros consist of:
- Versions of software included
- Whether any "non-free" software is included
- How the directory structure is used (for instance, do you use /opt or /usr/local)
- Is there a package manager / ports system, or do you compile everything on your own?
- In the event of multiple solutions to the same problem (common), the distro often makes a default choice
- The GUI often has custom features, such as configuration applets
- The support culture around each
But if a piece of software can be compiled and installed on one distribution of Linux, though I'm sure there exists an exception, you can generally count on being able to get it to work on another, though it may take some work.
Another key difference is the startup/shutdown process (and service management generally). Some use sysv stile init setup, some use the style more common with BSD.
Several distributions (such as Ubuntu and its derivatives) are moving towards replacing init and related scripts and tools completely with upstart or similar options (http://en.wikipedia.org/wiki/Init#Replacements_for_init).
That was actually one of the particular things I was thinking of when I said "multiple solutions to the same problem", so I didn't add it as a separate thing. Though it is a pretty major difference that can trip someone up moving between two distros.