might be a crazy idea, but here goes.
- drop your non-clustered indexes that take up lots of space
- do a backup
- re-create the indexes you dropped
Of course you can only really do this if you database allows for some down-time in the day.
Also, dont drop your clustered indexes as SQL Server will waste a lot of time converting these to a heap.
Does buying that extra disk space seem like an easier solution yet?
Have you considered doing compressed backups? this is a new feature of 2008, it may be an option for you.