I ditched the setviewoffset. It got much more messy considering I would need to loop around the other way.
In the end, it's easier to track everything and apply the world offset to the x co-ordinate. The trick is to have a buffer "screen" at each extreme of the "world". I really didn't like the idea of duplicate drawing (potentially a sprite could be made up of 2 halfs of 2 different sprites!)
I have a world 8 screens wide (plus 1 overlap screen at each end)
To wrap it I have to do the following:
if you are >screen 6, reposition items that are on screen 1 to screen 8. When you hit screen 8, reset pointer to screen 1
Similar behaviour for going the other way.
@Digital: Why your concern over built in collisions?