The more specified details we have in the beginning, the less issues we will have during the process. Nothing worse than miscommunication towards the end of a project. I will do my best to ask all the important questions up front, but I also need my clients to include as much specific details in the beginning as well.
I prefer to offer a flat rate so that there is no need to worry about hourly rates. Just puts more pressure on my shoulders, and my clients know exactly how much they are going to pay. Get the job done right for the agreed upon price.