I've been trying to get around this problem for the past couple of weeks, and here are some options:
1) Run 2G only - This will eliminate the time without signal being 50% problem, but you are on 2G. Press the 2G only button, then turn on airplane mode, and then turn back on, and you will have just 2G
2) SetCPU - I've started using SetCPU this past weekend and it's pretty good at helping to extend the battery life. I set it such that the phone only runs 133-66Mhz when the screen is off. I was able to get almost 10 hours with some regular usage.
3) There seems to be some issue with the i8000L sleeping properly. I've seen others from Canada on the forum having these issues.