The expression could modify the opacityPP, for example saying something like
opacityPP = opacityPP * 0.9;
Then one would create shading network connections from the particleSamplerInfo opacityPP to a fluid attribute, like opacityInputBias. One does not connect to the fluid from inside the particle expression… the particle expression is evaluated once per particle per frame. The particleSamplerInfo input value, by constrast, gets evaluated for every shading sample(per pixel). The way the Maya Shading Engine works with shading nodes is that there are certain attributes names, like normalCamera, that the engine recognizes. If these exist on a node then it stuffs the value of these attributes with the relevent values for the pixel being rendered. All the samplerInfo and particleSamplerInfo nodes are is a collection of attributes… they compute nothing. One could stick the same named and typed attribute on a different node and it would work the same(you will notice that normalCamera, for example, exists on all nodes that use this attribute).
Note that you do not need to have a particle expression to fade the particles with age… you could directly connect the sampler’s normalized age attribute(instead of opacityPP) to a valueRemap node then connect the outColor of this to the fluid transparency. You can then edit the color ramp on the valueRemap node to edit the transparency of the particle across its age.
Duncan