There are a number of different options for this IcP. Pick the one that fits in with what you are planning to do for your project. If none fits, do the discrete event simulation.
Command Priority Queue (Graphical Game/MUD Option) - By changing the queue from the last IcP to a priority queue, you can schedule events that won't happen until some point in the future. For example, in an RPG there are spells that take time to cast. You could place the command the invokes the spell effects on a priotity queue with the time to process it being the appropriate amount of time in the future. In a MUD, you could also include things like travel times from one room to the next so that you can better simulate longer distances.
Discrete Event Simulations - One nice application of a priority queue is to organize events in a discrete event simulation. Very large DE simulations can be built around priority queues. Since this isn't a course of DE simulations, we will pick a very simple one. The idea is that you are tracking the growth of a population of cells begining with a single cell. Each cell splits a certain amount of time after it is created. The thing is that the delay isn't a fixed value, it varies. We will say that the delay between splits is given by (util.Random.nextGaussian+5).abs. You start with one cell and each time a cell splits you get two new cells that will be scheduled to split. Track the growth of the cell population for 1000 time units.
Variable Timestep Integrator - For the future.