It really depends on any number of factors, but 2.5 hours sounds about right. The actual playing time is 60 minutes, there are two breaks and the clock stops for penalties, icing, goalie covering/catching the puck, etc. Then there's the possibility of overtime and penalty shootouts.
A few things can really mess things up. I've heard of a game delayed when the mascot got stuck rappelling from the rafters. One game I saw on TV was delayed due to a lighting malfunction. When they determined it would take a long time for the lights to come back, they actually took an early break, continued the remainder of the second period (a bit over 3 minutes), and then immediately started the third period.