Blender's internal keyboard shortcuts are categorised by context (i.e. 3D View Edit mode, or Image Editor), in groups called 'key maps'. These key maps can configured individually, or left as default, in which case updates in new version of Blender will overwrite them.

Editing keyboard shortcuts is a matter of:
Various types of input events are possible:
Available as mouse events are mouse movements, mouse wheel rolls, and any of the mouse buttons, on press, release or either. Aliases for the overall 'Select With: LMB/RMB' preference are available as the 'Select Mouse' or 'Action Mouse' button click events.
A tweak event is a mouse click-drag, possibly constrained to a direction. For example, to configure a border selection to a left mouse button click and drag, use a Tweak event, set to Left mouse, in Any direction. With the direction constraints, you can map different operators to different mouse click-drag directions, like mouse gestures.
Keys events can be used on press, release, or either.
The above events can be combined with the standard Ctrl/Alt/OS/Cmd modifiers, in order to change their function. As well as these, any other key can be used as a modifier key, for example the Grease Pencil tool is mapped to mouse tweak, with 'D' as the modifier key, so the tool is used by holding 'D' and dragging the mouse.
Keyboard shortcuts are editable in User Preferences (File->User Preferences).