I have just the opposite problem - I come to work at noon, read livejournal, chat with colleagues, fix urgent problems and am only able to begin coding after five PM or even later. That's where I get my productive shift. But it feels like I'm wasting half a day.
Lately, my coding productivity has been related to the time of day as well. I find myself doing more work in the evening or at night. Mainly because there's less disruptions (people) around to distract me online and offline. I could force myself back to doing more during the day, but it I would have to retrain myself since my brain is still in the mode of wanting to do other things at that point. Since the days are getting shorter here, I don't mind it so much, since I rather enjoy the Sunlight while it lasts.
I think that is a great way of working, by working in your most productive hours (which of course vary from person to person) you will get more done, and enjoy it more. Makes sense to me.
I code best after 5 too, but am fairly sure it's due to lack of distractions. Have you tried coming in on a weekend? I have to do that sometimes, and with the office empty I have the same productivity as at 6 when they have all gone home.
Maybe for me, and for you? the answer is to work from home...
Could you come in a bit later? Say at 3? Eliminate some of the "waste" but leave enough time to fix problems etc before you start your real productive shift?
To have a full work day I will need to leave for home near midnight which is not something I want to do every day. Also, colleagues genuinely need me to be in the office during standard hours for the efficient communication.
Are you sure you are wasting your time? It could be that you are really productive BECAUSE of these hours, not in spite of them. It varies from person to person, but I need some time doing nothing to become nervous and really start working well. This is why mornings are an awful time for me to do some work..