Assumption: You know which tile in the 2D array the user started with and which he ended with.
Assumption: It is only possible to highlight horizontal, vertical or 45 degrees diagonal words.
The amount of tiles to check in the x or y direction is the absolute value of (end - start) -- or (start - end) -- these are equivalent.
If the number of tiles is greater than zero in both directions, you have diagonal movement. Note that you will also have the same number of tiles in each direction.
If the number of tiles is greater than zero in 1 direction only, you have either vertical or horizontal selection.
In both cases, you'll want to loop over some tiles.
Starting with the user's start tile*, store that tile's letter + every tile's letter until you reach the end tile.
For pure horizontal or vertical selections, increment the corresponding x or y variable in your 2D array.
For diagonal selections, increment both the x and y variables in your 2D array.
After finishing the loop, you should have all selected tile letters stored, which you can use to check against valid words.
*Potentially, always start with the top-most and left-most, if all words are written top to bottom and left to right.
Also, you could probably have kept to using your previous thread: http://www.gamedev.net/topic/650356-help-with-some-problems-with-word-search-game/