2 ways that I know of off the top of my head:
1. A cheat, but isn't that what all VFX is anyway?
Take another plane, and place it slightly above the other one,
the distance above the other depends on how far your
particles are going through the original plane.
Make it collide with the particles using the same settings
as the other surface, then render with its' Primary Visibility off
- OR -
2. From the docs:
"In repeated or numerous collisions, particles might pass through the geometry because of insufficient collision detection sensitivity. You can increase sensitivity to avoid this problem.
To adjust the collision detection sensitivity:
Select the particle object.
In the Attribute Editor's Collision Attributes section, increase Trace Depth.
The Trace Depth sets the maximum number of collisions Maya can detect for the object in each animation time step. For instance, with a setting of 2, Maya checks twice in a frame. Any more than two collisions are ignored and the subsequent particles penetrate. Increasing the setting increases processing.
You can set Trace Depth to 0 to make a particle object pass through geometry. You can optionally add a traceDepthPP attribute to a particle shape node to set collision detection sensitivity on a per particle basis (see Understanding particle attributes). When added, traceDepthPP appears in the Per Particle (Array) Attributes section of the Attribute Editor. The traceDepthPP setting overrides the Trace Depth setting."
Israel "Izzy" Long
Motion and Title Design for Broadcast-Film-DS