Print the relative path
Bash + coreutils, 116
Here's a shell script to get the ball rolling.  Pretty sure there'll be shorter answers:
n=`cmp &lt;(echo $1) &lt;(echo $2)|grep -Po &quot;\d+(?=,)&quot;`
printf -vs %`grep -o /&lt;&lt;&lt;${1:n-1}|wc -l`s
echo ${s// /../}${2:n-1}

Output:
$ ./rel.sh /usr/share/geany/colorschemes /usr/share/vim/vim73/ftplugin
../vim/vim73/ftplugin
$ ./rel.sh /usr/share/geany/colorschemes/ /usr/share/vim/vim73/ftplugin/
../../vim/vim73/ftplugin/
$ ./rel.sh /usr/share/vim/vim73/ftplugin /usr/share/geany/colorschemes
../../geany/colorschemes
$ 

Note there is no way for the script to tell if the string ftplugin is a file or a directory.  You may explicitly provide a directory by appending it with an / as in the example above.
Won't handle paths containing whitespace or other funny characters.  Not sure if that is a requirement or not.  Just a few extra quotes would be needed.