Here's my implementation:
buttSort = b . i . unwords . map concat $ map xmap fbf `xmap` fbs
where fbf = cycle [u, o] : cycle [cycle [o, u]]
fbs = map tacnoc . words $ "FIBONACCI BUTT SORT"
xmap = zipWith ($)
tacnoc = map (:[])
A bit of a kludge, to be honest. What I ought to have done is written a custom iterator function instead of juggling map and xmap, so it would be intrinsically aware of the space-skipping requirement and I wouldn't have to fuck with fbf.