I have a two mouses: one for each hand. How can I set the primary mouse button separately for each mouse?
Use ControllerMate

You can reprogram virtually any button (keyboard, MIDI key, mouse key, etc.) to carry out any number of pre-defined actions.


  Reconfigure drivers
  
  Driver configurations can be used to change the default behavior of a
  keyboard or mouse that uses ControllerMate's driver.
  
  All buttons on a keyboard have some default function or another. Most
  are useful, some are not. A driver configuration allows one button on
  a keyboard act like another, or can turn a button off completely.
  Buttons that have been turned off can still be used to trigger
  building blocks.
  
  A driver configuration for a mouse can include a custom acceleration
  curve. This curve can be one of the standard curves, a standard curve
  with an adjusted speed or sensitivity, or an entirely custom curve
  created point by point.
  
  Multiple configurations can be created for the same keyboard or mouse
  — use building blocks to control when a configuration is active.