While modifying the search behavior is one way to fix the issue, another way that's perhaps better is to keep the search behavior as-is but instead to modify the replacement behavior.
To accomplish this, set the variable
dabbrev-case-replace
to nil.
This way is perhaps better because, even if what you typed is incorrect case, it will still be correctly matched, and then completed to the correct case.
Example: Let's say you have the variable "aVariable". If you change the search behavior (setting dabbrev-case-fold-search to nil), then typing "av" will not match your variable. However, if you instead change the replacement behavior (setting dabbrev-case-replace to nil), then typing "av" will expand to "aVariable".
Reference: http://www.gnu.org/software/emacs/manual/html_node/emacs/Dabbrev-Customization.html