Here the contours of a method to do this half-automatic selection you are looking for. It is heavily based on an example on the `ImageCorrelate` doc page of Waldo fame. First, you interactively select an example of the plot marker you want to look for:

    img = Import["https://i.sstatic.net/hhPr9.png"];
    
    pt = {ImageDimensions[img]/4, ImageDimensions[img]/2};
    LocatorPane[
     Dynamic[pt],
     Dynamic[
      Show[
       img,
       Graphics[
        {
         EdgeForm[Black], FaceForm[], Rectangle @@ pt
         }
        ]
       ]
      ], Appearance -> Graphics[{Red, AbsolutePointSize[5], Point[{0, 0}]}]
     ]

![Mathematica graphics](https://i.sstatic.net/gLQNX.png)

Then you use Mathematica v8's image processing tools to find similar structures:

    res =
      ComponentMeasurements[
       MorphologicalComponents[
        ColorNegate[
         Binarize[
          ImageCorrelate[
           img,
           ImageTrim[img, pt],
           NormalizedSquaredEuclideanDistance
           ], 0.18
          ]
         ]
        ], {"Centroid", "Area"}, #2 > 1 & (*use only the larger hits*)
       ];

The coordinates are now in `res`. I'll show them below. Many are correct, sometimes you get some spurious hits and misses. It depends on the `Binarize` threshold value and the "Area" size chosen in `ComponentMeasurements` third argument.

    Show[img, Graphics[{Green, Circle[#, 5] & /@ res[[All, 2, 1]]}]]

![Mathematica graphics](https://i.sstatic.net/TTgJ5.png)

----
**EDIT:** Here a more complete application. It is not robust as it is (no error handling at all), but nevertheless already quite useful.

The function `getMarkers` is called with an image as argument and the name of a variable in which the final markers are returned:

![Mathematica graphics](https://i.sstatic.net/HNfp9.png)

You get the app with tabs that represent processing stages:

![Mathematica graphics](https://i.sstatic.net/3m9FV.png)

In the first tab you define the axes by dragging the colored dots to the locations on the x and y axis with the highest known value and to the origin of the plot. You also enter the values for these points here:

![Mathematica graphics](https://i.sstatic.net/JrUpH.png)

In the next tab you then indicate the marker you want to have detected:
![Mathematica graphics](https://i.sstatic.net/zFaYk.png)

The detection results are presented in the next tab and you can drag a slider to increase or decrease the number of results:

![Mathematica graphics](https://i.sstatic.net/FVIa2.png)

![Mathematica graphics](https://i.sstatic.net/dCxEZ.png)

![Mathematica graphics](https://i.sstatic.net/WzKSb.png)

You can manually adjust the detected markers in the next tab. Markers can be dragged, removed (alt-click an existing marker) and added (alt-click on an empty spot). Actually, this is so easy to do that I would be tempted to say that I could do without the marker-detection  phase.

The end result can be seen in the Results tab. If something is wrong you can go back to an earlier tab:
![Mathematica graphics](https://i.sstatic.net/BmLFT.png).

The data plotted in the Results tab is also copied in the variable passed to the function, test in this example.

    test
    
    (*
    ==> {{400.5159959, 0.007353847123}, {450.3095975, 
      0.005511544915}, {499.8452012, 0.004129136525}, {550.9287926, 
      0.002664992936}, {600.4643963, 0.001702431875}, {653.869969, 
      0.000764540446}, {685.6037152, 0.0002398789942}, {764.7123323, 
      0.0002481309886}, {801.7027864, 0.0001989932135}}
    *)

The code:

    findMarkers[img_, pt_, thres_, minArea_] :=
      ComponentMeasurements[
        MorphologicalComponents[
         ColorNegate[
          Binarize[
           ImageCorrelate[
            img,
            ImageTrim[img, pt],
            NormalizedSquaredEuclideanDistance
            ], thres
           ]
          ]
         ], {"Centroid", "Area"}, #2 > minArea &
        ][[All, 2, 1]];
    
    SetAttributes[getMarkers, HoldRest];
    getMarkers[img_, resMarkers_] := 
     DynamicModule[
       {
        pt = {ImageDimensions[img]/4, ImageDimensions[img]/2},
        axisDefinePane, defineMarkerPane, findMarkerPane, editMarkersPane,
        finalResultPane, xAxisBegin, xAxisEnd, yAxisBegin, yAxisEnd, 
        myMarkers, myTransform, 
        xoy = {{1/2, 1/8} ImageDimensions[img], 
               {1/8, 1/8} ImageDimensions[img], 
               {1/8, 1/2} ImageDimensions[img]}
       },
      
      axisDefinePane =
       Grid[{{
          LocatorPane[
           Dynamic[xoy],
           Dynamic[
            Show[
             img,
             Graphics[{Line[xoy]}]
             ]
            ],
           Appearance -> {Graphics[{Red, AbsolutePointSize[5], 
               Point[{0, 0}]}], 
             Graphics[{Green, AbsolutePointSize[5], Point[{0, 0}]}], 
             Graphics[{Blue, AbsolutePointSize[5], Point[{0, 0}]}]}
           ]},
         {Row[{"x(1): ", 
            InputField[Dynamic[xAxisBegin], Number, FieldSize -> Tiny], 
            " x(2): ", 
            InputField[Dynamic[xAxisEnd], Number, FieldSize -> Tiny]}]},
         {Row[{"y(1): ", 
            InputField[Dynamic[yAxisBegin], Number, FieldSize -> Tiny], 
            " y(2): ", 
            InputField[Dynamic[yAxisEnd], Number, FieldSize -> Tiny]}]}
         }
        ];
      
      defineMarkerPane =
       LocatorPane[
        Dynamic[pt],
        Dynamic[
         Show[
          img,
          Graphics[
           {
            EdgeForm[Black], FaceForm[], Rectangle @@ pt
            }
           ]
          ]
         ], 
         Appearance -> Graphics[{Red, AbsolutePointSize[5], Point[{0, 0}]}]
        ];
      
      findMarkerPane =
       Manipulate[
         Show[
           img, 
           Graphics[{Red,Circle[#, 5] & /@ (myMarkers = findMarkers[img, pt, t, 1.05])}]
         ],
         {{t, 0.2, "Threshold"}, 0, 1},
         TrackedSymbols -> {t},
         ControlPlacement -> Bottom
      ];
      
      editMarkersPane =
       LocatorPane[Dynamic[ myMarkers], img, 
         Appearance -> Graphics[{Red, Circle[{0, 0}, 1]}, ImageSize -> 10],
         LocatorAutoCreate -> True
       ];
      
      finalResultPane = 
       Dynamic[myTransform = 
         FindGeometricTransform[
            {{xAxisEnd, yAxisBegin}, {xAxisBegin, yAxisBegin}, 
             {xAxisBegin, yAxisEnd}
            }, xoy
         ][[2]] // Quiet; 
        ListLinePlot[resMarkers = myTransform /@ Sort[myMarkers],
              Frame -> True, Mesh -> All], 
        TrackedSymbols -> {myMarkers, xoy, xAxisEnd, yAxisBegin, 
          xAxisBegin, yAxisBegin, xAxisBegin, yAxisEnd}];
      
      TabView[
        {
         "Define axes" -> axisDefinePane, 
         "Define marker" -> defineMarkerPane, 
         "Find Markers" -> findMarkerPane, 
         "Edit Markers" -> editMarkersPane, 
         "Results" -> finalResultPane
        }
      ]
    ]