To create a custom alert which acts modally, you could do the following:
Create a UIView with two subviews. One of those sub-UIViews covers the entire window (e.g., 320x480 in size) with an adjusted alpha value so that it displays the content under it dimmed. The sibling subview is the container for your Alert and should be frontmost.
Ignore events in the dimmer view, respond appropriately to taps or other events in the alert container view.
When all the views are configured and layed-out, add the top view as subview to something like [[UIApplication sharedApplication]keyWindow]
[[[UIApplication sharedApplication]keyWindow] addSubview:myCustomAlertView];
NOTE: the reason for the sibling views where one is dimmed and thwarts UI events is I'm pretty certain that if you lower the alpha of a superview, the child views inherit that property. AT least I recall having dealt with this issue in the past. I'll stand corrected if wrong.
--
I created a custom alert class which, while not modal at the moment, dismisses automatically after a number of seconds, or before the timeout if a touchUpInside event is received. It's just a UIView which responds to taps. I found that there were several areas in my app where I wanted to show a brief message, but came to dislike having to always hit an "OK" button to move on. With this class, I can move on with other activities even before the alert auto-hides, or still just tap to lose it quickly.