There has been a lot of ongoing discussion on the subject of rating dialogs in the apps. I believe John Grubber started this discussion in one of his post, later followed by Marco's post and others. This is an interesting discussion since it affects both sides of the equation, the consumer as well as the developer.
If ratings dialogs are handled irresponsibly then it creates a poor user experience. Consider the app which pops up ratings alert on every launch. These apps if lucky are placed in "Do not launch" folder or deleted at worst. The developer side of the story is quite different. In order to survive in the app store developer's needs to obtain reviews from customers. App store algorithm is based on placing the highly rated app on the top while the unrated apps gets lost in the crowd.
Although most of the developers might think that there is no workaround to this issue but they would be wrong. The key to the solution of this problem is "How you ask". As mentioned earlier most of the apps show the ratings alert prompt on every app launch with only two options "Yes" and "No". We need a third option "Never ask me again". This simple option will instantly improve the user experience. If you are thinking that you just lost that review then you are wrong. If the customer has not rated your app several times when you hijacked the app then it is more than likely that they are not going to rate the app ever.
In my app "Vegetable Tree - Gardening Guide" I did not implement a rating dialog. Instead I allowed the user's to contact me directly using the "Contact Us" option. This created a relationship between myself and my customer. After fulfilling their request I requested them to review the app and they did. If you visit iTunes page for Vegetable Tree you will notice that most of the reviews are because of excellent customer service or as I call it personal attention.
You might argue that I was able to give personal attention because my app has less users but that is not the case. In peak months I received 20-30 emails per week and I replied to every single of them. If your app is becoming huge then maybe you should invest in hiring representative who will answer the emails.
One other option was to simply put the ratings option buried in the settings screen. This will result in a much cleaner experience for the user allowing them to rate the app when they desire.
I do not think that Apple should ban these ratings dialog as the developer's paycheck is directly tied to the user's response. But I do believe that Apple should provide some API's where the ratings should be performed in a more fluent fashion from right within the app thus persisting the user experiencing.