I needed to spend some time last night exploring the source to the library that comes with the SparkFun WiFly device. In the process I discovered why it wasn’t possible to use the library’s code to join a WiFi network if the SSID has a space in the name (even if you used a $ substitution). It is not quite the fault of the library code as the root cause is that one form of the join command on the chip won’t accept a space/$. The good news is by changing the code in the library slightly I could get the $ substituted SSID name to work just fine. I’ve posted details on the SparkFun forum.
My current annoyance is that the Arduino's official Ethernet library derives from Stream but the WiFly library derives from Print meaning third party libraries and code that work with Ethernet can't be used with the WiFly without quite a bit of work. I need to dive in further to understand if the WiFly library could be modified. I'm not sure why the library's author deviated in such a fundamental way from the standard library.