In general, implementations of ABM are written in agent-based environments, most of which aren't full fledged GIS systems but may be able to use GIS data. One of the challenges of incorporating these kinds of models into a GIS is their strong temporal aspect: each agent is changing over time in response to surrounding agents. Because a typical GIS focuses on vector and raster data, its a fairly different data model.
There is Agent Analyst which runs within ArcGIS and is due for a update to 10 in the near future, or you can take a look at the ABM packages listed on Wikipedia. Netlogo has a GIS extension which can be used to interact with spatial data, and a recent Netlogo-R bridge may give you added flexibility in the spatial component of the analysis. Netlogo is nice to experiment with because it provides a graphical environment for exploring the model, including shareable Java applets, such as this one for flocking.
Check out this recent implementation of flocking which walks through the code very clearly, neat stuff!