On Linux, urllib.urlopen("https://www.facebook.com/fql.php?query=SELECT first_name FROM user") will have the spaces automatically quoted and run smoothly.
(By the way, the URL is fictional)
However on mac, this is not the case. Somehow the URL is not escaped, and an error would be thrown. I have checked both python versions to be at least 2.6 and the version of urllib to be 1.17
Is this a bug?
urlopen documentation doesn't promise you to escape anything.  Use urllib.quote() to escape it yourself.
Urllib trouble across platforms